首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java正则表达式OR运算符

Java正则表达式OR运算符
EN

Stack Overflow用户
提问于 2010-01-09 08:43:28
回答 1查看 179.1K关注 0票数 100

这可能是一个愚蠢的问题,但我在任何地方都找不到:

如何使用不带括号的java OR正则表达式运算符(|)?

例如:电话|电话|传真

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-09 08:46:05

您可以单独使用管道:

代码语言:javascript
复制
"string1|string2"

例如:

代码语言:javascript
复制
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|string2", "blah"));

输出:

代码语言:javascript
复制
blah, blah, string3

使用括号的主要原因是限制备选方案的范围:

代码语言:javascript
复制
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(1|2)", "blah"));

具有相同的输出。但是如果你这样做的话:

代码语言:javascript
复制
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|2", "blah"));

你会得到:

代码语言:javascript
复制
blah, stringblah, string3

因为你说的是"string1“或者"2”

如果您不想使用?:捕获该表达式部分

代码语言:javascript
复制
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(?:1|2)", "blah"));
票数 168
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2031805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档