2016-05-26 3 views
0

|という2つの可能なパターンを分離する正規表現がある場合は、どのパターンが私の弦に合ったパターンであるかを見つけることは可能ですか?文字列に一致する代替正規表現がどのように見つかるか

たとえば、([cC]at|[dD]og)というパターンがあり、文字列clifford is a dogに一致するものがあるとします。次に、パターン[dD]ogが成功した一致であり、代替ではないことを確認することができますか:[cC]at

個々の代替パターンを個別に照合し、成功したパターンを試すことができると私は理解していますが、パターンごとに一致の試行を必要としない別の解決策があるかどうかは疑問です。この私は一度に数百のパターンに一致するようにしようとしている状況)

+1

別々の二つにそれらを保ちますグループ '([cC] at)|([dD] og)' – rock321987

答えて

1

にあなたは2つの異なるグループを使用し、そのインデックスを確認し、このようなことができます。

([cC]at)|([dD]og) 

Regular expression visualization

Regex demo

マッチ情報

MATCH 1 
    Group 2. [14-17] `dog` 
MATCH 2 
    Group 1. [33-36] `cat` 

何らかの理由でグループにしている場合ところで、全体の交代は、あなたがこのような非キャプチャグループを使用することができます。

(?:([cC]at)|([dD]og)) 
+0

@Federicoありがとう、あなたは私の質問に完全に答えました。私はグループを使用するとは思わなかったと信じることはできません – bunji

+0

@bunji笑、助けてうれしい –

関連する問題