-1

(英数字またはアンダースコア) で始まり、その後に任意の数のスペースが続き、その後に別の (英数字またはアンダースコア) が続く行に一致する Perl スクリプトがあります。2 番目 (英数字またはアンダースコア) には、これが負の数 (たとえば -50) になる可能性も含める必要があることに気付きました。どうすればこれを達成できますか?

元のコード:

if ( /^\w[\s]+\w/ and not /^A pdb file/ ) {
...doSomething
}

次のようなことを試みて失敗しました:

if ( /^\w[\s]+\-*w/ and not /^A pdb file/ )
if ( /^\w[\s]+\-{0,1}w/ and not /^A pdb file/ )
if ( /^\w[\s]+\w|-\w/ and not /^A pdb file/ )

ありがとう。

4

2 に答える 2

1

これはあなたのニーズを満たしていますか?

/^\w+\s*-?\w+$/

それは一致すると言います:

  • \w+: 任意の数の英数字 (アンダースコアを含む)
  • \s*: 任意の数のスペース (少なくとも 1 つのスペースが必要な場合は、を使用\s+)
  • -?: オプションのダッシュ
  • \w+: 任意の数の英数字 (アンダースコアを含む)。この文字セットが数字のみである場合は、\d+代わりに使用します。
于 2013-07-20T00:38:03.000 に答える
-2

試す:

m{
    \A         # start of the string
    \w         # a single alphanumeric or underscore
    \s+        # one or more white space
    (?:        # non-capturing grouping
        \-     # a minus sign
        \d+    # one or more digits
    )?         # match entire group zero or one time
    \w         # a single alphanumeric or underscore
}msx;
于 2013-07-20T01:17:56.047 に答える