我有这个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);