gpt4 book ai didi

Python RE - 用于匹配带有转义引号的类 printf 格式字符串的正则表达式

转载 作者:行者123 更新时间:2023-11-28 06:45:31 24 4
gpt4 key购买 nike

我正在用 python 编写一个小的 C++ 预处理器,它应该可以找到类似 printf 的格式字符串。我需要的是一个正则表达式,它匹配从第一个引号到第二个引号,但忽略之间的所有转义引号 ('\"')。这是一个示例:

foo(bar, "Value of \"s\" is: %s", "foobar");

我需要一个正则表达式:

"Value of \"s\" is: %s"

我目前的情况是这样的:

(".*?")

但我还没有找到忽略转义引号的方法。我对此很陌生。如果有人能给我一个解决方案/提示,我将不胜感激。

提前致谢!

最佳答案

您可以尝试使用下面的正则表达式来匹配第一个和第二个 " 之间的所有字符,

\".*?[^\\]\"

DEMO

>>> s = r'foo(bar, "Value of \"s\" is: %s", "foobar");'
>>> m = re.search(r'".*?[^\\]"', s)
>>> result = m.group(0)
>>> print result
"Value of \"s\" is: %s"

解释:

  • " 匹配第一个双引号。
  • .*? 匹配任何字符零次或多次。 ?* 之后进行不情愿的匹配。
  • [^\\]" 匹配到 "(双引号),它前面没有 \ 符号。

关于Python RE - 用于匹配带有转义引号的类 printf 格式字符串的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25079862/

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