我有一个长文本,其中包含:
city_nameLAcity_name some text here and there ;) city_nameLondoncity_name some other text will goes here too then city_nameTehrancity_name and of course some other junk text here.
我想从上面的文字中诋毁洛杉矶、伦敦和德黑兰。我饿了,但不能得到我想要的东西,我用了下面的东西:
ereg ("city_name(.*)city_name", $longText, $output);
如何做这份工作?我感谢您的投入!
使用(.*?)
而不是(.*)
。不同之处在于,.*
将尽可能多地匹配(使用贪婪量词*
),而.*?
将尽可能地匹配小(*?
是懒惰量词)。因此,除非你在某个地方有一个名字包含city_name
的城市(不知道,美国有一些奇怪的名字;也许是这样).*?
应该能满足你的需求。
随机注意:这可能不适用于ereg
,我现在还不太熟悉扩展的POSIX正则表达式。然而,这些函数在PHP中已经被弃用了一段时间(您也应该得到一个警告)。在可能的情况下,最好用各种preg_*
函数来代替它们。我相信,替代品将是preg_match_all
。