パターン反復と正規表現

パターン反復と正規表現

パターンを採用する

[UGLER]*

文字列UUGが一致しますか?つまり、重複は許可されますか?

答え1

原則としてそうです。しかし可能使用する正規表現スタイルによって異なります。少なくとも、着替えるむしろそしてポリメラーゼ連鎖反応すべて文字列と一致します。表現の[UGLER]*意味はU、G、L、E、またはRグループのゼロ個以上の連続した文字と一致します。

さまざまな正規表現タイプを簡単にテストできます。

  • 着替える

    $ echo UUG | grep '[UGLER]*'
    UUG
    
  • むしろ

    $ echo UUG | grep -E '[UGLER]*'
    UUG
    
  • ポリメラーゼ連鎖反応

    $ echo UUG | grep -P '[UGLER]*'
    UUG
    

もちろん、探しているから若いまたはそれ以上の予期しないものとも一致します。

$echo "foobar" | grep  '[UGLER]*'
foobar

使用している正規表現スタイルがそれをサポートしている場合は、+代わりにを使用してください*。たとえば、PCREを使用します。

 $echo -e "UUG\nfoobar" | grep -P '[UGLER]*'
 UUG
 foobar
 $echo -e "UUG\nfoobar" | grep -P '[UGLER]+'
 UUG

答え2

パターンが正規表現ではなくファイルグローブパターンであると仮定すると、「UUG」というファイル名と一致します。このパターンは、U、G、L、E、または R で始まるすべてのファイルと一致します。

自分でテストしてみてください。

touch UUG
ls -l [UGLER]*

パターンが正規表現の場合は一致します。どのゼロ個以上の[UGLER]インスタンスと一致するため、文字列です。ゼロ以上ではなく1つ以上を一致させるには、+代わりに使用してください。*

関連情報