gpt4 book ai didi

python - 正则表达式:匹配 Python 关键字

转载 作者:太空宇宙 更新时间:2023-11-04 06:43:43 25 4
gpt4 key购买 nike

我正在尝试使用正则表达式(在 Python 中)为 Python 制作语法荧光笔。除其他事项外,我想突出显示关键字,例如 for、while、if 等。为此,我需要一个匹配它们的正则表达式。

我的问题是,例如,我不希望 for 在字符串内部时匹配,仅当被隔离时(前后有空格)。

一开始我有 \bfor\b,它匹配每次出现的分隔 for。这个问题是它包含诸如 "string with for inside"

之类的东西

我考虑过后视/前视(如 this 问题所暗示),但无法回避这需要 Python 中的固定宽度模式。很想在这里获得一些关于尝试的指导性提示。

简而言之:仅当 Python 如此解释时,才可以是正则表达式匹配关键字,例如 for

最佳答案

正如其他人所提到的,可能有更适合这项工作的工具。话虽这么说,将正则表达式用于新用途总是很有趣,并且结合一些代码应该是可能的,而不是使用单个正则表达式。

现在,没有一种简单的方法来排除字符串(正则表达式通常不能很好地处理配对分隔符),因此最简单的方法是创建一个文本副本,将任何字符串替换为空格,这样索引是相同的。像 \"[^"]*\" 这样的东西来查找所有字符串(好吧,双引号字符串),然后用相同长度的字符串替换每个匹配项。然后运行你的正则表达式来查找关键字修改后的字符串。

为单引号和注释添加大小写将是 (\"[^"]*\"|'[^']*'|#.*$)。当然,这将如果字符串包含任何转义引号,则中断,因此您可以寻找修复方法,例如 this question

关于python - 正则表达式:匹配 Python 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40176113/

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