如何用正则匹配包含指定词汇的引号内容并保存完整引号
正则提取包含特定词汇的引号内容方法
可以实现该需求,你可以通过在正则匹配规则中加入特定关键词的强制匹配规则,过滤出符合要求的引号内容。
适配需求的核心正则
针对你要提取双引号内包含/pagead/内容的场景,推荐使用以下正则:
"([^"]*?/pagead/[^"]*?)"
各部分逻辑说明:
- 开头和结尾的
":匹配内容前后的双引号边界 - 中间
[^"]*?/pagead/[^"]*?:惰性匹配双引号之间的所有字符,强制要求必须包含/pagead/关键词,不符合的内容会被直接过滤 - 包裹的括号是捕获组,匹配成功后直接取第一个捕获组的内容即可得到目标结果
匹配效果
针对你给出的HTML代码示例,用上述正则匹配后,可直接提取到目标内容:
/pagead/clk?mo=r&ad=-6NYlbfkN0C4JTuWysBZGWr3ScYyn1q3GP1
额外使用提示
- 若你需要匹配的内容是单引号包裹,只需把正则中的双引号替换为单引号即可
- 如果你使用的工具/编程语言支持环视语法,可使用下述正则,无需额外提取捕获组,直接得到目标内容:
(?<=")[^"]*?/pagead/[^"]*?(?=") - 若你需要处理的HTML结构非常复杂,建议优先使用HTML解析器提取对应属性值后再做关键词过滤,匹配稳定性会高于直接用正则匹配的方案。
内容的提问来源于stack exchange,提问作者Bryton_Petersen
相关产品推荐
相关产品推荐

