我想在HTML内容中进行字符串替换。
<!-- REPLACE_STRING_5 -->
为了做到这一点,我需要得到字符串(ID)的数量,我只是想检查我正确有效地做了吗?
<?php
$subject = "<!-- REPLACE_STRING_21 -->";
$pattern = '/^<!-- REPLACE_STRING_[0-9\.\-]+ -->/';
if(preg_match($pattern, $subject))
{
$pos = strpos($subject, '-->');
//20 is the number where the number postion start
$pos = $pos - 20;
echo substr($subject, 20, $pos);
}
else
{
echo 'not match';
}
答案 0 :(得分:2)
如果您尝试替换 REPLACE_STRING_21
中的数字,您可以使用外观来执行此操作:
(?<=<!-- REPLACE_STRING_)[-0-9.]+(?= -->)
工作示例:http://regex101.com/r/tK5cI1
由于您想要捕获数字,您可以使用括号()
来部署捕获组,如下所示:
<!-- REPLACE_STRING_([-0-9.]+) -->
工作示例:http://regex101.com/r/tV4tI3
然后您需要像这样检索捕获组1:
$subject = "<!-- REPLACE_STRING_21 -->";
preg_match("/<!-- REPLACE_STRING_([-0-9.]+) -->/", $subject, $matches);
print_r($matches);
if (isset($matches[1]))
echo $matches[1];
$matches
将包含一系列匹配项,在这种情况下,$matches[1]
是您正在寻找的匹配项。