gpt4 book ai didi

Python:正则表达式匹配 C 代码中的多行字符串

转载 作者:太空宇宙 更新时间:2023-11-03 17:03:27 24 4
gpt4 key购买 nike

我正在尝试通过 re 模块匹配 C 代码中的多行字符串。

我想匹配以下形式的字符串:

char * theString = "Some string \
I want to match.";

我尝试了以下正则表达式,但不起作用:

regex = re.compile(r"\".*\"$", re.MULTILINE)

我认为它会匹配第一个“,然后继续搜索下一行,直到找到结束的”,但事实并非如此。这是因为 $ 要求行尾有一个 "才能匹配吗?有没有办法使用正则表达式来做到这一点?

最佳答案

使用点全部标志。

然而,这是解析C字符串的方式。 (?s)"[^"\\]*(?:\\.[^"\\]*)*"

如果不支持(?s)内联修饰符,在flags参数中设置修饰符。

re.compile(r'"[^"\\]*(?:\\.[^"\\]*)*"', re.DOTALL)

 (?s)
"
[^"\\]* # Double quoted text
(?: \\ . [^"\\]* )*
"

理想情况下,您应该添加(原始正则表达式)(?<!\\)(?:\\\\)*一开始,
以确保左双引号不会被转义。

关于Python:正则表达式匹配 C 代码中的多行字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34821244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com