栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

正则表达式:匹配词不在引号之间

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

正则表达式:匹配词不在引号之间

下面的正则表达式解决方案在大多数情况下都可以使用,但是如果不平衡的单引号出现在字符串文字之外(例如在注释中),则可能会中断。

在上下文中匹配字符串的常规正则表达式技巧是匹配您需要替换的内容,以及匹配并 捕获 您需要保留的内容。

这是一个示例Python演示:

import rerx = r"('[^'\]*(?:\.[^'\]*)*')|b{0}b"s = r"""    var foe = 10;    foe = "";    dark_vador = 'bad guy'    foe = ' I'm your father, foe ! '    bar = thingy + foe"""toReplace = "foe"res = re.sub(rx.format(toReplace), lambda m: m.group(1) if m.group(1) else 'NEWORD', s)print(res)

参见Python演示

正则表达式看起来像

('[^'\]*(?:\.[^'\]*)*')|bfoeb

请参阅regex演示。

('[^'\]*(?:\.[^'\]*)*')
部分将用单引号引起来的字符串文字捕获到组1中,如果匹配,则将其放回结果中,并在任何其他字符串上下文中
bfoeb
匹配整个单词
foe
-随后被另一个单词替换。

注意
:要也匹配双引号字符串文字,请使用

r"('[^'\]*(?:\.[^'\]*)*'|"[^"\]*(?:\.[^"\]*)*")"



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/661420.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号