用于在第一个字符出现时拆分字符串的PHP Regex
这可能是一个蹩脚的问题,但我完全是正则表达式的新手。我有一些格式为:
的文本数据现在,我想使用正则表达式将它们拆分成一个名称:值对数组。我正在尝试的正则表达式是公司名称:公司名称,地点。公司地址:一些, 地址,在这里。
链接: http://www.somelink.com
/(.*):(.*)/
和preg_match_all()
,它确实可以很好地处理前两行,但在第三行,它在一部分中返回"Link:http:",在另一部分中返回"//www.Somelink.com"。
那么,有没有办法只在第一次出现字符‘:’时拆分该行?
解决方案
您可能需要类似/(.*?):(.*)/
的内容。*
后面的?
将使其成为"非贪婪的",因此它将以这种方式消耗尽可能少的文本。我想这对你的情况很管用。默认情况下,*
是"贪婪的",并尝试匹配尽可能多的重复项。
编辑:有关使用*
和+
运算符匹配重复的详细信息,请参阅here。
相关文章