【发布时间】:2012-04-08 20:10:40
【问题描述】:
现在这个对我来说是一个很大的挑战。
我在一个文件中有大约 1000 个查询,所有类似的模式如下:
***\*XYZ#PQR#\****
现在,其中 # 表示任意数量的非空白字符。
我已经编写了一段代码,可以读取上述行并生成相应的正则表达式。
但是,大约有 100,000 名候选人,正如我提到的那样,大约有 1000 个此类查询要针对匹配进行评估。
这使我的代码在计算上非常昂贵,因为它的数量级为 m*n。
我已经通过 ANTLR,发现学习曲线非常陡峭。虽然这听起来很有希望,但我仍然怀疑是否可以通过使用 Antlr 来实现。请让我知道您的意见或任何其他可行的解决方案。
【问题讨论】:
-
您能否更详细地解释一下什么是模式(相同长度、不同长度等)以及您需要对它们做什么。
-
这些模式旨在处理关键字的变体,例如“*Telecom#Servic#*”将匹配“电信服务”。模式长度可能因关键字而异。我想识别每个变体及其对应的模式。
标签: java regex parsing antlr lexer