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


How to get specific occurences of a string in a text and put it in an array?

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

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