x_m*_*ras 0 php regex preg-replace
我试图用php preg_replace更改html的所有链接.所有的uris都有以下形式
http://example.com/page/58977?forum=60534#comment-60534
Run Code Online (Sandbox Code Playgroud)
我想将其更改为:
http://example.com/60534
Run Code Online (Sandbox Code Playgroud)
这意味着删除"page"之后和"comment-"之前的所有内容,包括这两个字符串.
我尝试了以下内容,但它没有返回任何更改:
$result = preg_replace("/^.page.*.comment-.$/", "", $html);
Run Code Online (Sandbox Code Playgroud)
但似乎我的正则表达式语法不正确,因为它返回html不变.你能帮帮我吗?
这^是一个只匹配字符串开头的锚点,只$在末尾匹配.为了匹配你不应该锚定正则表达式:
$result = preg_replace("/page.*?comment-/", "", $html);
Run Code Online (Sandbox Code Playgroud)
请注意,这可以匹配不是URL的内容.您可能希望更具体地了解将要替换的内容,例如,您可能只想替换以任一http:或https:以及不包含空格的链接.