我正在尝试做这个正则表达式匹配和替换,但我不能做到这一点。
例子<a href="../files/...">One</a>
<a href"../files/...">Two</a>
<a href="three">Three</a>
<a href="four">Four</a>
我想找到每一组a标签并替换成这样的东西
查找href
中包含"/file"字符串的链接<a href="../files/...">One</a>
并将其名称替换为
<a href="../files/...">One (FileType Filesize)</a>
和其他的a标签一样。
任何帮助将非常感激!
(<a href(?=[^>]*'/file)[^<]*)(<'/a>)
将找到您感兴趣的链接。在这里测试:https://regex101.com/r/tG4fT1/1。如果您想要的替换是静态的,您可以单独使用regex和preg_replace
来完成。
$re = "/(<a href(?=[^>]*''/file)[^<]*)(<''/a>)/";
$subst = "$1 (Filetype Filesize)$2";
$result = preg_replace($re, $subst, $str);
现在,假设您实际上想要添加字符串(Filetype Filesize)
,而不是Filetype
和Filesize
的实际值,这就是您的问题要解决的问题。如果是值,则会变得更加复杂,根据这个答案,您可能必须为此使用匿名函数,同时还要为每个值指定正确的匹配。