【发布时间】:2019-10-25 19:23:55
【问题描述】:
正则表达式模式需要匹配指定单词的所有实例,它不仅需要匹配单个单词,还需要匹配词内内容。
例如搜索media 匹配mediator 中的实例。
很少有例外。如果单词内容在 url 或 font-family 声明中,则匹配应跳过。这是我到目前为止提出的代码,但我遗漏了一些东西,因为它跳过了所有内容。
(?:font-family:|https?:\/\/)[^\s\'";}]*(*SKIP)(*FAIL)(media)
以上可以是tested at Regex101。
【问题讨论】:
-
请附上您尝试从中提取匹配项的文本示例。
-
@TimBiegeleisen 请查看网址
-
在 SKIP FAIL 之后您需要一个
|并且可能还匹配左侧的媒体以确保它是字体系列或 https 的一部分?(?:font-family:\s*|https?:\/\/)[^\s'";}]*\bmedia\b(*SKIP)(*FAIL)|\bmedia\b见regex101.com/r/HCZ473/1,但我不确定这会涵盖您可能指定的所有方式font-family: -
@Thefourthbird 非常感谢您的帮助,显然我省略了 |操作员。我想出了这个正则表达式regex101.com/r/5CX3Ea/3,但它仍然捕捉到“font-family:media”
-
@kole23 你试过这个模式吗? regex101.com/r/jAjmUK/1font-family 后面有 1+ 个空格: