我有这个正则表达式:
'/<([A-Za-z]([A-Za-z0-9]*))>.*<\/\1>/'
而且我有这个字符串:
$string1 = <a>Asdf</a>
$string2 = <div>werwerwe</div>
我只想替换html标记,最后代码应该是:
$string1 = <h1>Asdf</h1>
$string2 = <h1>werwerwe</h1>
使用此代码,替换了标记,但是我必须知道html标记内的内容,这不是我想要的,我想将任何html标记更改为h1,并使内容相等。
echo(preg_replace('/<([A-Za-z]([A-Za-z0-9]*))>.*<\/\1>/', '<h1>asdf</h1>', '<a>Asdf</a>'));
/<(\/)?(\w+)>/g
var $string1 = '<a>Asdf</a>';
var $string2 = '<div>werwerwe</div>';
var pattern = /<(\/)?(\w+)>/g
console.log($string1.replace(pattern, '<$1h1>'));
console.log($string2.replace(pattern, '<$1h1>'));
preg_replace('/<([A-Za-z][A-Za-z0-9]*)>(.*)<\/\1>/', '<h1>$2</h1>', '<a>Asdf</a>')
顺便说一句,[A-Za-z0-9]*
周围不需要捕获组。