我不是任何想象力的正则表达专家!我理解正则表达式如何结合在一起的基础知识,但通过正则表达式,我可以搜索可能出现在一段文本中的两个单词吗? 即热和天气这两个词。可以写成: 这天气好热 在炎热的天气里 天气变得更加温暖
是否有可能创建正则表达式以获取所有三种情况,但不是(例如)图片是在恶劣天气下拍摄的?
任何帮助都会受到赞赏 - 我在PHP5.6中工作的方式是替代方案是否有更好的方法来做到我还没有想过?
答案 0 :(得分:1)
如果您只需要这两个单词,则可以使用可选的单词结尾列表进行正则表达式搜索。
例如:
(\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)
唯一的问题是它会错过像silly
silliest
或see
saw
这样的结尾而不添加额外的逻辑来查看原始单词。