2015-11-02 37 views
1

我希望創建一個正則表達式(在Python如果該事項),使得它檢查變量是否爲另一種語言有效的標識符。經常用於將標識符表達式不是關鍵字

到目前爲止,我有以下幾點:

[A-z_][A-Za-z_0-9]* 

不過,我要延長上述正則表達式,這樣它不匹配的關鍵字如「new」,「false」,「true」,「for」,「while」

我該怎麼做?

+2

'A-z'是錯誤的,因爲它包括'''[\]^_''''。使用'A-ZA-z' – nhahtdh

+0

@nhahtdh良好的抓 –

回答

2

您正在尋找negative lookahead這裏:

\b(?!(new|false|true|for|while)\b)\w+\b 

RegEx Demo

(?!new|false|true|for|while)是這裏負先行斷言,如果任何給定的關鍵字都存在失敗的比賽。 \b用於字邊界。

+0

上述正則表達式不匹配「新」,我相信,因爲它與「新」字開頭。好好努力吧 –

+1

解決這個問題,在'while'之後放''b''? – Barmar

+0

@YahyaUddin:現在就試試。我有一個錯字,現在修好了。 – anubhava