我的软件允许用户使用正则表达式来准备文件。我正在添加一个默认的正则表达式库,其中包含可以重复使用以准备各种格式的常见表达式。 一个常见的任务是在文件的特定部分删除crlf,但不在其他部分删除。例如:
<TU>Lorem
Ipsum</TU>
<SOURCE>This is a sentence
that should not contain
any line break.
</SOURCE>
Should become:
<TU>Lorem
Ipsum</TU>
<SOURCE>This is a sentence that should not contain any line break.
</SOURCE>
我有一个非常好用的正则表达式可以完成这个任务:
我有一个非常好用的正则表达式可以完成这个任务:
(?(?<=<SOURCE>(?:(?!</?SOURCE>).)*)(\r\n))
问题在于它需要大量处理时间,对于超过500kb的文件,可能需要30秒以上的时间。(在这种情况下,正则表达式已经编译,未编译的速度要慢得多)
虽然这不是一个大问题,但我想知道是否有更好的方法来使用正则表达式实现相同的结果。
提前感谢您的建议。