正则表达式匹配文件中的所有scala关键字

时间:2012-01-22 08:52:50

标签: regex scala

是否可以构建一个正则表达式来匹配scala源文件中的所有关键字?

到目前为止,我带来的最好:

"""(?<![\w`])(%s)(?![\w\_])""" format keyword

这是否足够好还是我错过了什么?

1 个答案:

答案 0 :(得分:4)

显而易见的解决方案是构建匹配所有关键字的正则表达式,您只需创建一个关键字(if|else|...)的大型OR-ing即可。但是,您需要排除字符串,评论和任何可能包含非关键字的免费关键字的文字。

当我们考虑正则表达式时,regexp以实际方式可以实现的目标是有限的。也就是说,regexp不一定适合你的问题。

原因是您必须匹配大量无效输入,然后将其丢弃。

  

e.g。你将如何处理终止于a的典型C风格注释   新线?

最终,您需要的是Scala的标记器,您可能会在Scala发行版中找到它。