使用预备替换将任何html标记更改为h1

问题描述 投票:0回答:2

我有这个正则表达式:

'/<([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>'));
php regex preg-replace
2个回答
0
投票
您可以尝试使用此模式:/<(\/)?(\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>'));

0
投票
使用捕获组将文本复制到替换文本。

preg_replace('/<([A-Za-z][A-Za-z0-9]*)>(.*)<\/\1>/', '<h1>$2</h1>', '<a>Asdf</a>')

顺便说一句,[A-Za-z0-9]*周围不需要捕获组。
© www.soinside.com 2019 - 2024. All rights reserved.