4

文字列をあるシーケンスまたは別のシーケンスに一致させたいのですが、それらの少なくとも 1 つに一致する必要があります。

私が学んだのは、次のand方法で実行できることです。

(?=one)(?=other)

ORでこういうのありますか?

Java、Matcher、および Pattern クラスを使用しています。

4

5 に答える 5

9

一般的に正規表現について言えば、ここから正規表現の不思議の国への旅を始める必要があります: 正規表現のチュートリアル

現在必要なのは|(パイプ文字)

one文字列ORを照合するにはother、次を使用します。

(one|other)

または、一致を保存したくない場合は、単に

one|other

Javaに特化するために、この記事は主題を説明するのに非常に優れています

パターンを次のように使用する必要があります。

//Pattern and Matcher
Pattern compiledPattern = Pattern.compile(myPatternString);
Matcher matcher = pattern.matcher(myStringToMatch);
boolean isNextMatch = matcher.find(); //find next match, it exists, 
if(isNextMatch) {
    String matchedString = myStrin.substring(matcher.start(),matcher.end());
}

Matcherに関しては、ここで表示したものよりもはるかに多くの可能性があることに注意してください...

//String functions
boolean didItMatch = myString.matches(myPatternString); //same as Pattern.matches();
String allReplacedString = myString.replaceAll(myPatternString, replacement)
String firstReplacedString = myString.replaceFirst(myPatternString, replacement)
String[] splitParts = myString.split(myPatternString, howManyPartsAtMost);

また、 Regexplanet (Java)refiddle (これには Java 固有のチェッカーはありません)などのオンライン正規表現チェッカーを使用することを強くお勧めします。

于 2012-11-28T10:32:37.390 に答える
4

「または」演算子のスペル|は、たとえばone|otherです。

すべての演算子はドキュメントにリストされています。

于 2012-11-28T10:32:53.093 に答える
2

次のようにパイプで分離できます。

Pattern.compile("regexp1|regexp2");

いくつかの簡単な例については、こちらを参照してください。

于 2012-11-28T10:32:57.540 に答える
1

OR|の文字を使用する

Pattern pat = Pattern.compile("exp1|exp2");
Matcher mat = pat.matcher("Input_data");
于 2012-11-28T10:42:08.010 に答える
0

答えは既に与えられています。パイプ「|」を使用してください オペレーター。それに加えて、アプリケーションを実行せずに正規表現テスターで正規表現をテストすると便利な場合があります。次に例を示します。

http://www.regexplanet.com/advanced/java/index.html

于 2012-11-28T10:45:55.637 に答える