0

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

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

这是我到目前为止所拥有的:

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

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

r'' lol
r''

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

4

1 回答 1

0

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

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

于 2013-02-27T01:32:31.827 回答