2012-02-15 10 views
0

文字列の先頭に3つのパターンのいずれかをキャッチする正規表現を作成しようとしています。私はどのように各パターンをキャッチするかを考え出しましたが、私はすべての3つに一致する正規表現を書く方法を考え出していません。正規表現を作成するのに役立つ

  • R[eE]:
  • R[eE]: \[a2geeks\]
  • R[eE]: \[a2geeks\] R[eE]:

私はこれを行うためのエレガントな方法がありますように感じるが、私はしてきた:ここでのパターンは(それぞれが最後にスペース文字が含まれています

+0

正規表現の何味?何語? –

+0

@Michael私は...味があることを知らなかった。しかし、これが役立つなら、これはいくつかのPythonコードになるでしょう。 – Zelbinian

+1

Perl、POSIX、sed –

答えて

3

これは仕事をする可能性があります2つのグループenclo ()のsedは、?(=上記の1つ以上の式)によってオプションになります。最終的なR[eE]は、中間のパターン[a2geeks]が最初に発生する必要があるので、より大きな()グループ内にネストされます。

^は、パターンが文字列の先頭で一致し、nedの.*がこのパターンに続く文字列の残りと一致することを示します。

^R[eE]:(\s\[a2geeks\](\sR[eE]:)?)?(.*) 
+0

ああ、異なる構文があります。それは完璧な意味合いを見た後です。正確には少しだけ違います( '^ R [eE]:\ s(\ [a2geeks \] \ s(R [eE]:\ s)?) – Zelbinian

1

オプションの正規表現を使用します。

^R[eE]: (\[a2geeks\] (R[eE]:)?)? 
関連する問題