【发布时间】:2021-10-11 15:17:15
【问题描述】:
我有几组词。例如:
["foo", "bar", "baz"]
["hello", "world"]
现在我想要一个正则表达式,它可以检查这些词组是否按照它们在我的组列表中的顺序排列,并且我希望在组之前、组之间或之后允许任何数量的其他词.例如。我希望我的正则表达式匹配以下字符串:
"foo bar baz hey how do you do hello world"
"foo bar baz hello world"
"something cool foo bar baz maybe hello world"
"something cool foo bar baz maybe hello world amazing"
我正在动态构建正则表达式字符串。就我而言,这是我正在构建的内容:
"( \S+ )*foo bar baz( \S+ )*hello world( \S+ )*"
我希望 \S+ 匹配除空格以外的任何内容。
我希望( \S+ ) 可以匹配除两边被空格包围的空格以外的任何内容。
我希望( \S+ )* 可以匹配任意数量的被空格包围的单词。
但它并没有像我预期的那样工作。例如。在字符串中
"something cool foo bar baz maybe hello world amazing"
只有这部分被正则表达式匹配,而不是整个字符串
" cool foo bar baz maybe hello world "
我的正则表达式中缺少什么?
我在学习正则表达式并练习使用正则表达式处理一些现实世界的任务时问这个问题。
【问题讨论】:
-
使用:
.*?\bfoo bar baz\b.*?\bhello world\b.*
标签: regex