如何编写正则表达式来匹配字符串文字,其中转义是引号字符的两倍?

Bre*_*dan 8 python regex fortran ply

我正在使用需要识别FORTRAN字符串文字的ply编写解析器.这些引号用单引号引用,转义字符加倍单引号.即

'I don''t understand what you mean'

是一个有效的转义FORTRAN字符串.

Ply以正则表达式输入.到目前为止我的尝试不起作用,我不明白为什么.

t_STRING_LITERAL = r"'[^('')]*'"

有任何想法吗?

Ano*_*on. 20

字符串文字是:

  1. 一个开放的单引号,接着是:
  2. 那么,任意数量的双引号和非单引号
  3. 一个单一的报价.

因此,我们的正则表达式是:

r"'(''|[^'])*'"
Run Code Online (Sandbox Code Playgroud)

  • 这似乎不处理转义序列. (2认同)