【发布时间】:2018-04-18 18:00:24
【问题描述】:
比如说,有一个 Python 源代码文件,比如:
def someStuff():
return "blabla"
myThing = "Bob told me: \"Hello there!\""
twoStrings = "first part " + "second part"
我将如何编写一个正则表达式来匹配:
"blabla"、"Bob told me: \"Hello there!\""、"first part "、&"second part"
包括周围的引号?
最初,我认为这可以简单地使用\"[^\"]*\" 来完成,但这没有考虑到字符串包含\" 的情况。我也尝试过加入消极的后视镜:
(?<!\\)\"[^\"]*(?<!\\)\"
但没有任何成功。处理此问题的推荐方法是什么?
【问题讨论】:
-
它有是正则表达式吗?有更好的方法从 python 代码中提取字符串文字。
-
@Aran-Fey 不幸的是,由于我所依赖的库,是的。虽然,从技术上讲,我可以重写整个事情,但除非我绝对确定这将是必需的,但我认为它不会因为正则表达式的强大功能,我真的不想这样做。
-
如果使用正则表达式,您将不得不处理
'''、r'、' """ '等内部可能出现的引号。您认为值得付出努力吗?或者这不是你的用例?
标签: python regex escaping syntax-highlighting