用于匹配标识符但不匹配保留关键字的模式

时间:2016-05-20 16:40:16

标签: regex regex-lookarounds

我试图设计与标识符匹配的正则表达式,除非它是一个保留关键字。
以下是我尝试过的内容:(?!{}(?![_a-zA-Z0-9]))[_a-zA-Z][_a-zA-Z0-9]*其中{}if|else|while替换为ifa。不幸的是,它无法将开始的任何与保留关键字匹配,因此>>> s = re.search(r"\bwater\b", "Need water") >>> s.start() 5 >>> s = re.search(r"\bwater\b", "water is needed") >>> s.start() 0 之类的内容无法通过。
如何设计正确的正则表达式?

1 个答案:

答案 0 :(得分:1)

您似乎缺少的部分是字边界的results_label。这些方面应该有用:

\b