regex 正则表达式在整个文档中查找2个或多个多词字符串(先查找任一字符串)

mjqavswn  于 2023-03-04  发布在  其他
关注(0)|答案(1)|浏览(103)

我需要一些帮助,如何使正则表达式匹配,只有当2个或更多的多词字符串存在于整个文档的任何地方,任何字符串可以出现在第一个或最后一个或以任何顺序在文档中。
我已经找到了大量适用于2个字符串的示例,但它们都要求字符串按顺序出现。
由于计算位置的限制,它也必须是单行/单次计算,而不是像bash那样可以将一个正则表达式的输出传输到另一个正则表达式中。
(?s).?\b页脚\b.+?\b条形图\b.
是我发现的一个关于堆栈溢出的很好的例子,但是它只能按顺序工作,不能处理多个单词的字符串,只能处理单个单词。
例如,对于这个字符串:
出版和平面设计,lorem ipsum(来源于拉丁语dolorem ipsum,翻译为“痛苦本身”)是一种填充文本,通常用于演示文档或视觉演示的图形元素。用占位符文本替换有意义的内容可以让查看者专注于图形方面,如字体、排版、和页面布局,而不会被内容分散注意力,它还减少了设计人员提出有意义的文本的需要,因为他们可以使用快速生成的lorem ipsum。
我需要能够匹配“平面设计”和“填充文本”,但我需要它匹配,如果其中任何一个来第一。

lmvvr0a8

lmvvr0a81#

对每个短语使用预测:

^(?=.*\bgraphic design\b)(?=.*\bfiller text\b).*

例如,添加了与“信息图表名称”不匹配的单词边界。
要检查更多短语,请对每个短语使用另一个预视。例如,还需要aaa bbb cccxxx yyy zzz

^(?i)(?=.*\bgraphic design\b)(?=.*\bfiller text\b)(?=.*\baaa bbb ccc\b)(?=.*\bxxx yyy zzz\b).*

添加(?i)使其不区分大小写。

相关问题