我对正则表达式有一个非常基本的问题。我想匹配,更换网址,像这样的:简单正则表达式中同一行上有多个匹配的问题
http://mydomain.com/image/13/imagetitle.html
对于我用下面的表达式:
/mydomain.com(.*)image\/(\d+)\/(.*).html/
这种模式工作正常居多,但它并不时出现多次出现在工作同一条线。所以这个工程:
This is my own image: http://mydomain.com/image/13/imagetitle.html
当包括跨线多次出现它的工作原理,以及:
This is my own image: http://mydomain.com/image/13/imagetitle.html
Yet I recommend this one as well: image: http://mydomain.com/image/15/imagetitle2.html
两次出现匹配,并且正确地更换。然而,这只是取代了第一场比赛的时候有两次出现在同一行:
This is my own image: http://mydomain.com/image/13/imagetitle.html, yet I recommend this one as well: image: http://mydomain.com/image/15/imagetitle2.html
我怎样才能确保所有比赛被替换,无论新线?
你可以粘贴你用来做替换的代码吗? – VladFr 2011-05-21 12:19:18
实际上,从preg_replace()函数的角度来看,<不是换行符。这两个例子都被视为单行主题。如果你显示你的替换代码,它会更清晰。 – Kel 2011-05-21 12:35:33
@凯尔:我很确定实际文本在那个地方有一个换行符,但是操作系统把它改成了'
',因为他错误地认为换行符在发布问题时会被规范化到一个空间。正如你指出的那样,如果真的有'
'那里,他不会有这个问题。 – 2011-05-21 19:03:43