我在一个字符串中有这段文字:
<p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;" align="center"><i style=""><span style="" lang="ES-TRAD">some text
another text<o:p></o:p></span></i></p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;" align="center"><i style=""><span style="" lang="ES-TRAD">some text more
and some text more<o:p></o:p></span></i></p>
如果我这样做
string.replace(/[\r\n]/g, "");
所有回车都将被删除,我只想删除那些介于“某些文本”和“另一文本”之间的人,我的意思是在跨度内。
提前致谢。
答案 0 :(得分:1)
/[\r\n]+(?=(?:(?!<span\b)[\s\S])*<\/span>)/i
这将匹配<span>
元素内的换行符。它还会在开头<span>
标记内以及<span>
元素中包含的任何其他标记内匹配。这可能并不重要,但我处于完全披露的情绪中。 ;)