1
  ^[[:space:]]*@

[[:space:]]*上記の正規表現の意味がわかりません。助けてください、ありがとう!

4

3 に答える 3

9

[:space:]は単語POSIX character classに一致する a です。All whitespace characters, including line breaks

つまり、 (Perl 5.18 [1]以降)[:space:]と同じです。\s

http://www.regular-expressions.info/posixbrackets.html


  1. 5.18 より前では、垂直タブ (U+000B) は に含まれていませんでした\s

    $ diff -u <( unichars -au '\s' ) <( unichars -au '[[:space:]]' ) \
        && echo 'no difference'
    --- /dev/fd/63  2013-05-21 22:08:03.000000000 -0400
    +++ /dev/fd/62  2013-05-21 22:08:03.000000000 -0400
    @@ -1,5 +1,6 @@
      ---- U+00009 CHARACTER TABULATION
      ---- U+0000A LINE FEED (LF)
    + ---- U+0000B LINE TABULATION
      ---- U+0000C FORM FEED (FF)
      ---- U+0000D CARRIAGE RETURN (CR)
      ---- U+00020 SPACE
    
于 2013-05-22T01:24:53.597 に答える
4

これは POSIX 文字クラスであり、この場合は「任意の空白文字」を表す Unicode に適した方法です。

このページを参照し、「POSIX Character Classes」までスクロールします。

于 2013-05-22T01:25:29.013 に答える
0

「空白文字」などの表現方法はいくつかありますが、これもそのひとつです。このセットには、スペース文字をセットに追加する[...]などを含めることができます。[:space:]

これは次のようになります。

^ # At the beginning of string...
[[:space:]]* # ...zero or more whitespace characters...
@ # ...followed by an at sign.
于 2013-05-22T01:26:14.093 に答える