0

文字列がワイルドカード付きの正規表現と一致するかどうかを確認するとします。ワイルドカードを置き換える部分文字列をプログラムで抽出するにはどうすればよいですか?

簡単な例:正規表現は"[foo|bar].*\.txt"、たとえば、見つかった一致する文字列は「foo123.txt」です。この場合、ワイルドカードを置き換えるのはサブストリングであるため、私が望む答えは「123」です。一致する文字列がbar0123456789.txtの場合、答えは0123456789です。

私はc#を使用していますが、c#でも実装できる他の言語での回答を気にしません。

4

1 に答える 1

1

グループが必要な場合は、角かっこを使用しないでください。角かっこは文字クラスを作成します。

必要なのは、そのための非キャプチャグループです。

(?:foo|bar).*\.txt

.*.は任意の文字に一致する特殊文字ですが、改行文字(デフォルト)であり*、前の文字を0回以上繰り返す数量詞です)から結果を取得するには、それをキャプチャグループに入れる必要があります。

(?:foo|bar)(.*)\.txt
于 2012-09-27T06:50:20.077 に答える