gpt4 book ai didi

python - 如何使用正则表达式检测无效的 C 转义字符串?

转载 作者:太空宇宙 更新时间:2023-11-04 07:42:48 30 4
gpt4 key购买 nike

我想找到一个正则表达式 (regex),它可以检测 C 双引号转义字符串中是否有一些无效转义(您可以在其中找到仅转义的双引号)。

我认为有效 \\ \n \r \" (测试字符串使用")

对此的部分解决方案是使用 (?<!\\)\\[^\"\\nr]但是这个无法检测到像 \\\ 这样的错误转义.

这是我用来测试匹配的测试字符串:

...\n...\\b...\"...\\\\...\\\E...\...\\\...\\\\\..."...\E...

表达式应匹配最后 6 个 block 为无效,前 4 个有效。问题是我当前的版本确实只发现了 2/5 的错误。

最佳答案

(?:^|[^\\])(?:\\\\)*((?:\"|\\(?:[^\"\\nr]|$)))

这是字符串的开头,或者不是反斜杠的东西。然后是一些(可能为零)正确转义的反斜杠,然后是未转义的 " 或另一个反斜杠;如果是另一个反斜杠,则它后面必须跟一些既不是 "\nr 或字符串结尾。

错误的转义也会被捕获。

关于python - 如何使用正则表达式检测无效的 C 转义字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1873652/

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