java - 如果匹配多个单词中的任意一个?
阿神
阿神 2017-04-17 16:45:00
[Python讨论组]
阿神
阿神

闭关修行中......

全部回复(5)
高洛峰

每个工具的表达式可能都不一样。
awk python grep java都可以。
输入 | awk ' $1~/(hello)|(world)/'
sed也可以
grep -f words_need_file input
grep -P “(hello)|(world)" input

Java和python有类似的正则

根据你的需求来吧

怪我咯
    '(\<hello\>)|(\<world\>)'
天蓬老师

例子:

hello world helloworld

js正则:

(\bhello\b)|(\bworld\b)

解释:

  1. \b表示单词边界

  2. ()表示子表达式

  3. |表示或

我对你的这个问题的理解是要匹配helloworld这两个单词:

  • (\bhello\b)这个子表达式表示单词边界后面紧接着是单词hello最后再接着是单词边界;

  • (\bworld\b)同样的,这个子表达式则是world单词前后紧接着的是该单词的单词边界;

  • (\bhello\b)|(\bworld\b)最后,再用|或符号匹配这两个单词;

不知道是否满意,其他关于正则的基础入门书籍推荐《正则表达式必知必会》,一本小册子浅显易懂。或者去看我记的笔记RegEx 快速掌握最基本的正则语法。里面我罗列了很多基本的语法,应对常见的问题应该问题不大。

迷茫

hello|world

天蓬老师

[hello|world]

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号