鉴于此文:
<span class='green'>foobar</span> something <span class='red'>fizzle</span>
我需要以某种方式达到这个目的:
<tagA>foobar</tagA> something <tabB>fizzle</tagB>
我基本上必须匹配<span class='green'>*anything*</span>
,并且能够将它与红色区分开来。我必须在两端采用这个绿色跨度并用固定的字符串替换它,但不知何故保留两个标签之间的任何文本。
我发誓我已经看了很多,但不知道如何使用正则表达式找到解决方案。
答案 0 :(得分:1)
这应该可以解决问题
替换
<span class='green'>(.*?)</span>
使用
<tagA>$1</tagA>
使用值为红色的
为类做类似的事情更新1
对反馈的回应“如果某个内容包含换行符怎么办?”
如果我没记错,JavaScript不支持“单行模式”/ Dot匹配换行符。
<span class='green'>([\s\S]*?)</span>
更新2
这个经过调整的正则表达式允许
<span\s+class\s*=\s*['"]green['"]\s*>([^>]*)</\s*span\s*>