如果我知道我需要的正则表达式功能的名称,我会有一个更好的标题。
作为验证任务,我需要验证文本流是否只包含与我已建立的正则表达式模式匹配的部分,无论它发生了多少次。例如,如果我的模式是“foo”并且我有字符串
"foo foofoo"
结果应该是三个匹配项,而不是其他不匹配的文本。相反,字符串
"foo foo fooo"
应返回三个匹配项,但我需要检测剩余的可打印字符“o”是否匹配。我的第一个是将管道字符用于“或”逻辑,如“(?:foo) |(\ S )”,我认为我对它进行了排序,但字符串
"-foo foo foo"
只匹配两次。看起来前导字符会使引擎跳到表达式的右侧,因为它被广泛定义,它会捕获到下一个单词中断。很明显,我的心理表现并不反映发动机的运行方式。我哪里错了?