Python 非关键字标识符的正则表达式

Python 非关键字标识符的正则表达式,python,regex,python-3.x,Python,Regex,Python 3.x,我希望创建一个正则表达式(如果需要的话,可以使用Python),这样它就可以检查变量是否是另一种语言的有效标识符 到目前为止,我有以下几点: [A-z_][A-Za-z_0-9]* 但是,我希望扩展上述正则表达式,使其不匹配关键字,例如“new”、“false”、“true”、“for”、“while” 我怎样才能做到这一点?您在这里寻找的是: (?!new | false | true | for | while)是此处的负前瞻,如果存在任何给定关键字,则断言匹配失败\b用于单词边界。我认

我希望创建一个正则表达式(如果需要的话,可以使用Python),这样它就可以检查变量是否是另一种语言的有效标识符

到目前为止,我有以下几点:

[A-z_][A-Za-z_0-9]*
但是,我希望扩展上述正则表达式,使其不匹配关键字,例如“new”、“false”、“true”、“for”、“while”

我怎样才能做到这一点?

您在这里寻找的是:


(?!new | false | true | for | while)
是此处的负前瞻,如果存在任何给定关键字,则断言匹配失败
\b
用于单词边界。

我认为上面的正则表达式与“new”不匹配,因为它以单词“new”开头。很好的尝试tough@YahyaUddin:现在试试看。我之前有一个打字错误,现在已经修复。是的,它确保了这些单词都是独立的单词(这相当于添加一个
\s
\W
标记
a-z
是错误的,因为它包括
[\]^`
。使用
a-Za-z
\b(?!(new|false|true|for|while)\b)\w+\b