我有一个长文本,其中包含:
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,但无法得到我想要的东西我用下面的东西:
ereg ("city_name(.*)city_name", $longText, $output);
如何做这份工作?感谢您的投入!
答案 0 :(得分:1)
使用(.*?)
代替(.*)
。区别在于.*
将尽可能匹配(使用贪婪量词*
),而.*?
将尽可能匹配 little ({{1} }是懒惰量词)。因此,除非你的某个城市的名字包含*?
(dunno,美国有一些奇怪的名字;也许它会发生)city_name
应该能得到你想要的东西。
随机说明:这可能不适用于ereg
,我现在对扩展的POSIX正则表达式并不熟悉。但是,这些函数现在已经在PHP中弃用了一段时间(你也应该收到警告)。最好在可能的情况下用各种.*?
函数替换它们。我相信,替代品将是preg_match_all
。