如何在正则表达式中提供 OR 运算符?

mer*_*esi 3 java regex

我想将我的字符串与一个或另一个序列匹配,并且它必须至少匹配其中一个。

and我所知,它可以通过以下方式完成:

(?=one)(?=other)
Run Code Online (Sandbox Code Playgroud)

OR 有这样的东西吗?

我正在使用 Java、Matcher 和 Pattern 类。

ppe*_*rka 8

一般来说,关于正则表达式,你绝对应该在这里开始你的正则表达式仙境之旅:正则表达式教程

目前需要的是|(管道字符)

要匹配字符串oneOR other,请使用:

(one|other)
Run Code Online (Sandbox Code Playgroud)

或者如果您不想存储匹配项,只需简单地

one|other
Run Code Online (Sandbox Code Playgroud)

为了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());
}
Run Code Online (Sandbox Code Playgroud)

请注意,关于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);
Run Code Online (Sandbox Code Playgroud)

另外,我强烈建议您使用在线正则表达式检查器,例如Regexplanet (Java)refiddle(它没有特定于 Java 的检查器),它们使您的生活更轻松!