我试图做出我一直在问到工作正则表达式,但我有没有运气使它足够有效后返回数据。
目标是尽可能提高效率。
目的号码1.独立使用的句子结尾(点,3点,感叹号...)的所有文本。
目标数2获取所有的字符串“时间”
这里是一个可能的小弦,并为它的正则表达式的例子后出现的号码。 (真正的人可以真正hudge)
正则表达式: 老:
(?:[^.!?:]|...)(?:(?:[^.!?:]|...)*?em (\d+))*
新:
(?:[.!?]|[.][.][.])(?:(?:[^.!?]|[.][.][.])*?\bem\b (\d+))*
PHP的正则表达式。搜索词和词
作品为字符串(我只是做它)
(我插入。在开始)
.Foi visto que a batalha em 1939 foi。 Claro que a data que digo ser em 1939éuma farsa。 Em 1938já(插入em 1910)nãohavia reis。
我想要的是制作一个不会回溯的正则表达式,因为它根本不需要回溯。通过这样做,我认为我可以节省处理时间,这需要......从30秒减少到20秒甚至10秒!只是为了这个1,需要1秒才能完成。
地址:
日Thnx的答案现在我有一个不会失败。但它仍然会回溯太多。任何解决方案
添加(回答一个删除的问题):
不幸的是,我没有样本数据,谁让我这样做,他说,他还没有样本数据仍然需要做到“昨天”。如果你给我一些与本文一样有效的东西,我肯定我可以和它一起工作,如果需要的话,也可以转换成专门用于这项工作的东西。否则我会再次问这里。
关于:你不应该认为你在'em'和你的号码之间只有一个空格:Em 1950不匹配。没问题。我正在使用不区分大小写的标志。或者如果我使用课堂,速度会更快吗? – brunoais 2011-04-30 08:22:52
这个模式很简单。找到一个单词em,后面有一个数字,然后获得该数字,否则忽略并转到下一个数字 – brunoais 2011-04-30 08:38:18