【发布时间】:2008-10-03 19:34:33
【问题描述】:
我有一个非常大的文件,看起来像这样(见下文)。我有两种基本的正则表达式可供选择(我知道可能还有其他方法,但我真的想比较贪婪和否定字符类)方法。
ftp: [^\D]{1,}
ftp: (\d)+
ftp: \d+
注意:如果我去掉 \d 周围的括号会怎样?
现在 + 是贪婪的,它会强制回溯,但 Negated Char 类需要逐个字符比较。哪个更有效率?假设文件非常非常大,因此处理器使用的微小差异会由于文件的长度而被夸大。
既然你已经回答了这个问题,如果我的 Negated Char Class 非常大,比如说 18 个不同的字符怎么办?这会改变你的答案吗?
谢谢。
ftp:1117 字节
ftp:5696 字节
ftp:3207 字节
ftp:5696 字节
ftp:7200字节
【问题讨论】:
标签: regex regex-greedy