如何正确匹配Python字符串文字与正则表达式?

时间:2013-02-27 00:53:34

标签: regex

这是课程项目的一部分。我使用Java构建了一个扫描Python代码的扫描程序。现在我必须将运行时间与Python扫描程序的Flex实现进行比较。

所以我尝试使用Flex匹配Python字符串文字。我正在尝试将string literal specification从Python文档转换为C正则表达式。

这是我到目前为止所做的:

[r|u|ur|R|U|UR|Ur|uR|b|B|br|Br|bR|BR]?('(([^\\]|[^\n]|[^'])|\\.)*'|\"(([^\\]|[^\n]|[^'])|\\.)*\"|'''([^\\]|\\.)*'''|\"\"\"([^\\]|\\.)*\"\"\")

但是当我将其应用于以下文本时:

r'' lol
r''

它匹配两条线。我希望它分别匹配每个r''并忽略引号之外的任何内容。

1 个答案:

答案 0 :(得分:0)

“除”\“或换行符或引号之外的任何源字符”转换为[^\\\n\'],而不是我之前在上面写的[^\\]|[^\n]|[^']

找到regex101.com的错误。它有一个非常有用的正则表达式分析工具。