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

标签 java regex

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

对于我了解到它可以通过以下方式完成:

(?=one)(?=other)

OR 有类似的东西吗?

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

最佳答案

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

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

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

(one|other)

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

one|other

针对Javathis article is very good at explaining the subject

您必须这样使用您的模式:

//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)regex101 ,它们让您的生活变得更加轻松!

关于java - 如何在正则表达式中提供 OR 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13602954/

相关文章:

java - 在 spring shell 命令中 Autowiring 对象实例?

java - 当集合大小超过 500.000 时,处理速度明显变慢

Java - 密码字段字符计数器

java - 在 Java 中验证 MAC 和 IP 地址

regex - -匹配成功但不更新 $matches

Java:替换所有 ' in a string with\'

java - 我可以在 JAVA 的属性文件中使用正则表达式吗?

java - Java 使用 UTF-8 还是 UTF-16 编码?

java - 如何使用 Mockito 模拟 Spring 的 JdbcTemplate.queryForList?

ruby-on-rails - 通过正则表达式解析字符串