匹配标识符但不匹配保留关键字的模式
Pattern to match an identifier but not matching reserved keywords
我正在尝试设计与标识符匹配的正则表达式,除非它是保留关键字。
这是我尝试过的方法:(?!{}(?![_a-zA-Z0-9]))[_a-zA-Z][_a-zA-Z0-9]*
其中 {}
被 if|else|while
之类的东西取代。不幸的是,它无法匹配 任何 begins 与保留关键字,所以像 ifa
这样的东西不会通过。
如何设计一个合适的正则表达式?
您似乎缺少的部分是单词边界的 \b
。按照这些思路应该可以工作:
(?!(if|else|while)\b)\b\w+
我正在尝试设计与标识符匹配的正则表达式,除非它是保留关键字。
这是我尝试过的方法:(?!{}(?![_a-zA-Z0-9]))[_a-zA-Z][_a-zA-Z0-9]*
其中 {}
被 if|else|while
之类的东西取代。不幸的是,它无法匹配 任何 begins 与保留关键字,所以像 ifa
这样的东西不会通过。
如何设计一个合适的正则表达式?
您似乎缺少的部分是单词边界的 \b
。按照这些思路应该可以工作:
(?!(if|else|while)\b)\b\w+