存在しなければならない複数の文字列のテキストを検証するには正規表現が必要です。確かに 正規表現を使用してテキスト内の複数の文字列を一致させるにはどうすればよいですか?
- ロージーは男の子が野生
- メリーズ野生の男の子は非常に狂って行かせたテキストを持っていると言います
そして、「男の子」と「野生」(任意の順序)の両方を持つ文章に一致させたいと思います。正しい一致は1と2ですが、3と4は一致しません。
誰か?あなたはもちろん、それを使用している場所に応じて適切なエスケープ処理して
存在しなければならない複数の文字列のテキストを検証するには正規表現が必要です。確かに 正規表現を使用してテキスト内の複数の文字列を一致させるにはどうすればよいですか?
- ロージーは男の子が野生
- メリーズ野生の男の子は非常に狂って行かせたテキストを持っていると言います
そして、「男の子」と「野生」(任意の順序)の両方を持つ文章に一致させたいと思います。正しい一致は1と2ですが、3と4は一致しません。
誰か?あなたはもちろん、それを使用している場所に応じて適切なエスケープ処理して
.*(?=\bboys\b).*(?=\bwild\b)|.*(?=\bwild\b).*(?=\bboys\b)
(^.*boys.*wild.* $|^.*wild.*boys.*$)
。
http://www.regular-expressions.info/reference.html
/.*?wild.*?boys.*|.*?boys.*?wild.*/
あなたはただ一人で.*
は貪欲で、文字列全体を消費しますので、.*?
を使用します。貪欲な試合では、 "野生"と "少年"との対戦に残るキャラクターはないので、常に失敗するでしょう。
これは、どちらも含まれていないテキストを検索します。 – mcrumley
正規表現はここでは過剰です。これは正常に動作し、より読みやすいです:
for (String str : new String[] { "Rosy made the boys go wild", "Marys wild boys are very crazy indeed",
"Henry is a wild boy", "Sally danced with 3 boys last night" }) {
if (str.contains("wild") && str.contains("boys")) {
System.out.println(str);
}
}
プリント:
Rosy made the boys go wild
Marys wild boys are very crazy indeed
あなたが正規表現に使用するどのようなツールを述べる場合は、あなたの質問に答える方がはるかに簡単 –
キリルは以下の罰金の提案を行いましたしかし、わかりやすくするために、私はASP.NET/C#でRegExクラスを使用しています。 – Alex