繁体   English   中英

使用正则表达式在文本中的任意位置找到两个单词

[英]Finding two words anywhere in text with regular expression

凭空想像力,我不是正则表达式方面的专家! 我了解正则表达式如何组合在一起的基础知识,但是通过正则表达式,我可以搜索可能出现在一段文本中任何地方的两个单词吗?
即炎热和天气。 可以这样写:天气炎热,天气炎热,天气变得更热

是否可以创建一个正则表达式来拾取所有三种情况,但是(例如)图片不是在恶劣的天气下拍摄的?

任何帮助将不胜感激-我正在使用PHP5.6进行替代,是否有没有想到的更好的方法?

如果只需要这两个单词,则可以进行正则表达式搜索,并带有可选的单词结尾列表。

例如: (\\bweather\\b.*hot(ter|test)?\\b|\\bhot(ter|test)?\\b.*\\bweather\\b)

但是,如果您需要根据用户输入来构建正则表达式,则需要完整的可能结尾列表: (s|er|est|ier|iest|ter|test|etc|etc)?

例如: (\\bweather(s|er|est|ier|iest|ter|test|etc|etc)?\\b.*hot(s|er|est|ier|iest|ter|test|etc|etc)?\\b|\\b(s|er|est|ier|iest|ter|test|etc|etc)?\\b.*\\bweather(s|er|est|ier|iest|ter|test|etc|etc)?\\b)

唯一的问题是,如果没有添加其他逻辑来查看原始单词,就会错过像sillysilliest那样的结尾或see别人saw结尾。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM