哪个正则表达式可用于识别java中的关键字?

时间:2014-05-23 06:27:37

标签: java regex keyword

我想匹配if,else,new和..etc等关键字。请建议一个合适的正则表达式来匹配它们。

我试过

(((\\s)+(when|then|end|and))+(\\s|$))|rule|if|else|(new+(\\s)) 

但它无法正常工作。

1 个答案:

答案 0 :(得分:3)

如果您有一个Java关键字列表,那么您可以将其转换为与这样的关键字匹配的正则表达式(原则上 - 以下并不是要用作实际代码,只是为了说明它是如何工作的) :

"\\b(?:" + "if" + "|" + "for" + "|" + ... + "|" + "new" + "|" + "static" + ")\\b"

例如,正则表达式使用word boundary anchors来确保它与单词if中的knife不匹配。

它没有语义概念,所以除非你已经完成了一些解析来将注释或字符串等与源代码的“命令部分”分开,否则你会在不一定的地方找到匹配被用作关键词。