所以我做了
$subject = 'sakdlfjsalfdjslfad <a href="something/8230">lol is that true?</a> lalalala';
$subject = preg_replace('<a href="something\/([0-9]+)">(.+?)<\/a>', '$1', $subject);
echo $subject;
其中目标是让主题回归
'sakdlfjsalfdjslfad lol is that true? lalalala'
然后PHP返回
warning: preg_replace(): Unknown modifier '('
我做错了什么?
答案 0 :(得分:1)
模式需要分隔符 - 斜杠,例如
'/<a href="something\/([0-9]+)">(.+?)<\/a>/'
答案 1 :(得分:1)
你需要围绕这种模式的分隔符:
$subject = preg_replace('#<a href="something/([0-9]+)">(.+?)</a>#', '$1', $subject);
答案 2 :(得分:0)
PCRE(Perl兼容正则表达式)应该用分隔符包围,所以
<a href="something\/([0-9]+)">(.+?)<\/a>
应该是
/<a href="something\/([0-9]+)">(.+?)<\/a>/
我使用了斜杠(/
) - 但有很多选择
使用PCRE功能时,需要使用模式 由分隔符括起来。分隔符可以是任何非字母数字, 非反斜杠,非空白字符。
经常使用的分隔符是正斜杠(/),哈希符号(#)和 波浪(〜)。以下是有效分隔的所有示例 图案。