2017-10-22 20 views
-1

正規表現含むパターンが存在しており行う(その1 | |その2 ...)と[部] |例えば、パート1、又は第2部のいずれかにマッチする他の正規表現パターン

(その2その1)はleave(e | ing)は離脱と一致します。

[part]はオプションの単語です。 cat [s]は猫と猫を一致させます

私はまた、すべてのパターンでなければならない単語を汚したいと思います。猫を与える[s]の両方catcatsと一致しますが、cat\bleav(?:e|ing)\b

caterには一致しません猫を与え、猫に

+3

私はあなたの質問を理解していません。正規表現がどのように適用されるかと一緒にサンプルの入出力を表示できますか? –

+0

正規表現でオプションのビットを指定するには、 '?'を使用できます。例えば。猫? part2は "part1part2"と "part2"に一致します –

+0

leav(e | ing)(?> \\ scats?)?です。 –

答えて

0

\bcats?\bを与える一致します両方leaveleaving

\bpart(?:1|2|3)?\bpart1に一致する一致します、 part2,part3またはpartpartapartまたはpartner

説明

\b  // Forces a word boundary so that it does not match in the middle of a word like part in apart 
(?: //Non capturing group so that we do not have extra groups in the matches, using this is a matter of choice 
|  //OR 
?  //Previous char in cats previous group in (?:1|2|3) is optional 

あなたは正規表現文字列を初期化中\b\をエスケープする必要があります注意してください。