0

我有一个长文本,其中包含:

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);

如何做好这份工作?感谢您的投入!

4

1 回答 1

1

使用(.*?)而不是(.*). 不同之处在于.*将尽可能匹配(使用贪婪量词*),而.*?将尽可能匹配(*?惰性量词)。因此,除非您的城市名称包含city_name某处(不知道,美国有一些奇怪的名称;也许会发生),.*?否则应该可以满足您的需求。

随机注释:这可能不适用于ereg,我现在对扩展的 POSIX 正则表达式并不熟悉。然而,这些函数在 PHP 中已经被弃用了一段时间(你也应该得到一个警告)。最好尽可能用各种preg_*功能替换它们。替代品会是preg_match_all,我相信。

于 2012-08-21T05:54:34.093 回答