2011-01-20 12 views

答えて

3

つまり、文字列には4〜20語の文字(英字、数字、アンダースコア)を使用する必要があります。ここで:

  • ^(キャレット)正規表現パターンが適用される文字列の先頭に一致します。文字ではなく位置に一致します。ほとんどの正規表現のフレーバは、改行後(つまり、ファイル内の行の先頭に)キャレットを一致させるオプションもあります。
  • $(ドル)は、正規表現パターンが適用される文字列の最後に一致します。文字ではなく位置に一致します。ほとんどの正規表現のフレーバは、改行の前に(つまり、ファイル内の行の最後で)ドルを一致させるオプションも持っています。文字列が改行で終わっている場合は最後の改行の前にも一致します。
  • \w文字クラスに一致する文字クラス(英字、数字、下線)です。文字クラスの内外で使用できます。
  • {n,m}ここで、n >= 0m >= nは、nとmの間で前の項目を繰り返します。欲張りなので、繰り返し回数をn回に減らす前にm回繰り返してみてください。

ここでは、使用例を示します。あなたを満たす行のみを参照してください出力に

[[email protected] /tmp]$ grep -E '^\w{4,20}$' blah 
between4and20 
okay 

[[email protected] /tmp]$ cat file.txt 
between4and20 
therearetoomanyalphanumcharacters 
foo 
okay 

は今、あなたはあなたのパターン'/^\w{4,20}$/'に一致するものだけの文字列を取得したい:私たちは、次の内容のファイルを持っている、と言います正規表現。

ああ、また、後者は、文字クラスにリストされていない単一の文字と一致させる、文字クラスを否定、直ちに開口[^^を有する(キャレット)を混同しません。 (開かれた後に置かれた場合は、キャレットを指定します。[^a-d]は、xabcまたはd以外の任意の文字)と一致します。

+0

正確には何を意味するのでしょうか? – sadojg

3

それは意味:

  • ^初めの間、
  • $と指定した文字列の最後に、{4,20}がなければならない唯一の4-20英数字ワット\
  • (以下のような 、B、C、D、1,2,3 ...など、また_)

私は正規表現を学びながら、あなたがWikipedia's page on Regular Expressionsに大きな、大きな助けを見つけると思います。


そして混乱がないだけので、^$は必ずしもお互いを必要としない、 正規表現だった場合:

'/^\w{4,20}/'

意味だろうと:試合を文字列の開始で、その後に4〜20文字の英数字を続けてください。

例(太字で一致):foobarのバズ

そして、正規表現パターンであるか:

'/\w{4,20}$/'

意味だろう。試合はの最後にする必要があります文字列は4〜20文字の英数字で表示されます

例(太字)Foo barbaz

1
/ opening delimiter  
    ^= start of sting 
    \w = word character 
    {x,y} min max 
    $ = end of string 
/end delimiter