正規表現はquantifier *で終わります。 しかし、私は文字列に一致するものはほとんどありません。どうすればすべての試合が見つかるようにすることができますか?私の正規表現:Regex:* Quantifierでの一致数はわずかです。
((CMD1|CMD2)+(?::|;)+.*)
そして、テスト文字列が"cmd1: test. test. test cmd2: test2. test2. test2"
ですだから私はマッチを取得する必要があります:
cmd1: test. test. test
cmd2: test2. test2. test2
コマンドは「行く」、「テイク」、「見て」のようなランダムな言葉である可能性があります。 1つの文字列に任意のコマンドのn-occurrenceが存在する可能性があります。 例:
Go: some sentences. and more. Take: other more sentences, and even more text here. Look: more and more. and more.
は、私はあなたが 'Regex.Split(Sを使用するかもしれないと思う刺さの終わりに続いて1回以上
\w+
をアサート肯定先読み、 @ "(?!^)\ s *(?= CMD \ d + [:;])"、RegexOptions.IgnoreCase) 'を実行します。 '?=(?=(?:CMD1 | CMD2 | CMDn)[:;])あなたの' CMD'がプレースホルダーの場合は、 '。コマンドが常に空白で区切られている場合は、 '(?!^)\ s *'を '\ s +'に置き換えてください。 –