需要使用正则表达式模式来匹配指定单词的所有实例,而不必只匹配单个单词,也不需要匹配单词内容。
例如搜索media
与mediator
中的实例匹配。
几乎没有例外。如果单词内容在url或字体系列声明中,则匹配应跳过。这是我到目前为止提出的代码,但是我漏了一些东西,因为它跳过了所有代码。
(?:font-family:|https?:\/\/)[^\s\'";}]*(*SKIP)(*FAIL)(media)
以上可以为tested at Regex101。
答案 0 :(得分:0)
您可以在(*SKIP)(*FAIL)
之后添加一个管道,并在font-family:
之后添加一个空格
请注意,您不必在字符类中转义\'
,并且如果将分隔符更改为/
以外的其他内容,则也不必转义那些分隔符。您还可以省略媒体周围的捕获组。
(?:font-family:\h*|https?:\/\/)[^\s'";}]*(*SKIP)(*FAIL)|\bmedia\b
(?:
非捕获组
font-family:\h*
匹配font:family:
和0+个水平空格字符|
或https?:\/\/
匹配http和可选s )
关闭非捕获组[^\s'";}]*
匹配除'";
或空白字符之外的任何其他字符0+次(*SKIP)(*FAIL)
消耗并避免使用SKIP and FAIL |
或\bmedia\b
在单词边界之间匹配媒体