正则表达式表示多个关键词的方式

zhtoad 2018-03-06 09:35:34
请问一下:
搜索一句话包含某些关键词
一个是中括号
.*[(关键1)(关键2)(关键3)(关键4)].*
一个是或
.*(关键1)|(关键2)|(关键3)|(关键4).*

我发现这两种搜索一句话有可能不同的结果。
请问他们的区别是什么呢?
...全文
2098 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhtoad 2018-03-09
  • 打赏
  • 举报
回复
你们都很强。
zhtoad 2018-03-06
  • 打赏
  • 举报
回复
看来我真的啥也没有搞明白呀。 谢谢高人。
HelloWorld_Wolf 2018-03-06
  • 打赏
  • 举报
回复
第二个表达式你写错了。 .*((关键1)|(关键2)|(关键3)|(关键4)).* 这个才和第一个表达式等价。 你写的运行起来是这样的 (.*(关键1))|(关键2)|(关键3)|((关键4).*)
HelloWorld_Wolf 2018-03-06
  • 打赏
  • 举报
回复
引用 4 楼 rickylin86 的回复:
[quote=引用 1 楼 haohao119955 的回复:] 第二个表达式你写错了。 .*((关键1)|(关键2)|(关键3)|(关键4)).* 这个才和第一个表达式等价。 你写的运行起来是这样的 (.*(关键1))|(关键2)|(关键3)|((关键4).*)
一楼的回复是错误的. 建议zhtoad 如果系统的学习正则表达式的话可以花点时间学习《Master Regular Expression》中文版的应该是《精通正则表达式》 ------------------------------------------------------------- .*[(关键1)(关键2)(关键3)(关键4)].* 这句表达的意思 任意数量的任意字符,后面跟着中括号中的其中一个字符,最后跟着任意数量的任意字符.并不是一楼所说的那样. .*(关键1)|(关键2)|(关键3)|(关键4).*表示的红色的部分四选一[/quote] 额,我的意思就是你说的那个意思,没有什么错误啊, 有错误的话也是因为用了捕获的括号,但是这和性能有关,和意思无关啊
rickylin86 2018-03-06
  • 打赏
  • 举报
回复
引用 1 楼 haohao119955 的回复:
第二个表达式你写错了。 .*((关键1)|(关键2)|(关键3)|(关键4)).* 这个才和第一个表达式等价。 你写的运行起来是这样的 (.*(关键1))|(关键2)|(关键3)|((关键4).*)
一楼的回复是错误的. 建议zhtoad 如果系统的学习正则表达式的话可以花点时间学习《Master Regular Expression》中文版的应该是《精通正则表达式》 ------------------------------------------------------------- .*[(关键1)(关键2)(关键3)(关键4)].* 这句表达的意思 任意数量的任意字符,后面跟着中括号中的其中一个字符,最后跟着任意数量的任意字符.并不是一楼所说的那样. .*(关键1)|(关键2)|(关键3)|(关键4).*表示的红色的部分四选一
oyljerry 2018-03-06
  • 打赏
  • 举报
回复

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧