我正在尝试进行此正则表达式匹配并替换,但我无法做到。
实施例
<?xml version="1.0" encoding="utf-8"?>
<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/window_background2">
<item>
<shape>
<solid android:color="#FFFFFF" />
</shape>
</item>
</ripple>
我想找到每个标签的集合并替换为这样的
查找包含&#34; / file&#34;的每个链接href中的字符串
<a href="../files/...">One</a>
<a href"../files/...">Two</a>
<a href="three">Three</a>
<a href="four">Four</a>
并将其名称替换为
<a href="../files/...">One</a>
与标签的其余部分相同。
非常感谢任何帮助!
答案 0 :(得分:1)
(<a href(?=[^>]*\/file)[^<]*)(<\/a>)
会找到您感兴趣的链接。请在此处进行测试:https://regex101.com/r/tG4fT1/1。如果您想要的替代品是静态的,您可以使用正则表达式并单独使用preg_replace
。
$re = "/(<a href(?=[^>]*\\/file)[^<]*)(<\\/a>)/";
$subst = "$1 (Filetype Filesize)$2";
$result = preg_replace($re, $subst, $str);
现在,假设您实际上想要添加字符串(Filetype Filesize)
,而不是Filetype
和Filesize
的实际值,而这正是您的问题所要解决的问题。如果它是值,则会变得更复杂,并且根据this answer,您可能必须使用匿名函数,同时还为每个值指定正确的匹配。