preg_replace() <字符 /> 标签



我有这个xml:

<RandomAlphaCharsA attr1="value1" attr2="value2 attrX="valueX" />
<RandomAlphaCharsB attr1="value1" attr2="value2 attrX="valueX" />

我需要剥离以下内容:

<RandomAlphaCharsX/>,只保留属性/值。

我尝试了这种模式:

$str = '<RandomAlphaChars attr1="value1" attr2="value2 attrX="valueX" />';
$str = preg_replace( "#<w+[s]{1}#", "", $str, -1 );`
var_dump( $str );
//it echoes string(46) "attr1="value1" attr2="value2 attrX="valueX" />"

另一方面,此模式与结束标记匹配:

preg_replace("#/>#", "", $str, -1);

如何将它们放在一个正则表达式中?

显然,这不起作用preg_replace("#<w+[s]{1}/>#", "", $str, -1);

我需要以某种方式排除<RandomAlphaChars/>之间的所有类型的字符,我需要一些帮助。

编辑:哇,你很快。所有答案都很好用!

<S+|/>

这应该与两者匹配。请参阅演示。

http://regex101.com/r/nW4yD9/1

用 or 运算符| 连接它们:

$str = preg_replace( "#<w+s+|s+/>#", "", $str);`
这是我

的:

$str = preg_replace('#<w+s+(.*?)s*/>#s', '$1', $str);

最新更新