正则表达式:如何指定捕获的组应该包含一个特定的单词

时间:2015-05-30 08:22:58

标签: php regex

问题:如何匹配具有ID属性的锚标记?

我的字符串

<a href="something" id="someid" />
<a href="something" />

预期输出:

<a href="something" />
<a href="something" />

我需要删除锚标记中的id属性。

我到目前为止尝试过:

 <a(.*?)>  //how to specify `id` should be in the captured group

注意:我没有使用DOM解析器,因为它保存为HTML。

2 个答案:

答案 0 :(得分:4)

检查:https://regex101.com/r/cN9nR3/3

表达式:<a[^>]*(id="[a-z]*").*>应该这样做。

答案 1 :(得分:3)

您可以使用以下模式:

$pattern=/^<a (href=".*?").*\/>$/mg
$replacement=<a $1 \/>
$st='<a href="something" id="someid" />\n<a href="something" />'
preg_replace ( $pattern ,$replacement , $st)

Demo