我应该在运行多个正则表达式之前拆分大文件吗?

时间:2013-04-07 17:25:04

标签: java regex

我有一个大约35KB的文本输入,我需要从中提取一小部分数据。我使用多个正则表达式来查找数据,这部分工作正常。

我的问题:我应该将大文本拆分成多个较小的字符串并在每个字符串上运行相应的正则表达式,或者只是将其保存在一个大字符串中并为每个正则表达式重置匹配器?哪种方式最有效率?

1 个答案:

答案 0 :(得分:1)

如果运行速度不是太慢,那么请选择目前运行速度足够快的任何东西。

否则,您无论如何都不应该使用原始正则表达式执行此任务。一旦你提到“多个正则表达式”从中提取“小数据”,你就是在谈论编写解析器并且应该使用一个不错的解析工具。

当你使用java时,我建议从jFlex开始,这是一个非常成熟和稳定的C工具的成熟java实现。

对于大多数任务,jFlex将是您所需要的,但如果问题更加复杂,它还可以与许多java解析器生成器顺利集成。我个人的偏好是略显模糊的Beaver

当然,如果你可以将它作为一组正则表达式来实现它并不复杂,jFlex将为你完成这项工作。