gpt4 book ai didi

正则表达式匹配 n 引号字符串

转载 作者:行者123 更新时间:2023-12-01 10:21:50 40 4
gpt4 key购买 nike

用转义序列匹配字符串相当容易:

"(\\.|[^"])*"

但是,如果我不仅想支持 Python 的三重引号字符串 ("""hello"""),还想支持带有任意数量引号的字符串(只要开头与结尾匹配)怎么办?

("+)(.*?)\1

会这样做,但我失去了对转义序列的支持,因为 "hello\"world" 应该完全匹配。

其他应该完全匹配的例子:

  • """hello world"""""(字符串以两个引号结尾)
  • ""hello\""world""(中间有两个引号,但其中一个被转义,另一个不足以单独结束字符串)<

这甚至可以用正则表达式实现吗?

最佳答案

这个怎么样:

^("+)((.*?)(?<!\\)(?:\\\\)*)\1$

我之前有一个更简单的表达式,但它在 "hello world\\" 上失败了,所以我更新了回顾,允许在结束引号之前出现偶数个反斜杠, 但不允许奇数个反斜杠。使用的正则表达式语法是 PCRE。

fiddle here .

关于正则表达式匹配 n 引号字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25113977/

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