如何在文本中获取特定字符串并将其放入数组中?

时间:2012-08-21 05:52:37

标签: php regex string

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

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

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

1 个答案:

答案 0 :(得分:1)

使用(.*?)代替(.*)。区别在于.*将尽可能匹配(使用贪婪量词*),而.*?将尽可能匹配 little ({{1} }是懒惰量词)。因此,除非你的某个城市的名字包含*?(dunno,美国有一些奇怪的名字;也许它会发生)city_name应该能得到你想要的东西。

随机说明:这可能不适用于ereg,我现在对扩展的POSIX正则表达式并不熟悉。但是,这些函数现在已经在PHP中弃用了一段时间(你也应该收到警告)。最好在可能的情况下用各种.*?函数替换它们。我相信,替代品将是preg_match_all