我在执行我想要实现的目标时遇到困难,这可能只是睡眠不足,但正则表达式更有可能不是我的强项,我只是无法完全理解它,但希望有人能给我一个手在这里。
我有以下字符串:
<span class="comment"><!--Some string\nsome other string\nsome more string--></span>
我需要对其进行格式化,使其看起来像这样:
<span class="comment"><!--Some string</span>\n<span class="comment">some other string</span>\n<span class="comment">some more string--></span>
现在,如果这是唯一的字符串,这将非常容易,因为我可以执行以下操作:
/</span>\n<span class="comment">/gi
但是,只有在相应的 open 具有类“comment”时才会发生格式</span>
设置,另一个问题是带有类注释的 open span 标签不一定是字符串的第一个单词,它前面可能有一个字符串,并且跨度内可能有无限多个 \n ...例如,另一种变体可能如下所示:
<<span class="tag">string1\nstring2</span>><span class="comment"><!--string\nanother random string--></span>
不应在带有类标签的范围内进行格式化,但是应在带有类注释的范围内进行格式化。
这对我来说是相当具有挑战性的,我得到的最接近的是以下内容:
正则表达式:
/<span class="comment">([^\<\/]*)\n/gi
替代品:
<span class="comment">$1</span>\n<span class="comment">
这很接近,因为它使用类注释格式化跨度内的最后一行和第一行,而不是中间的行。
可能有 javascript 解决方案可以做到这一点,但如果可能的话,我更喜欢使用正则表达式。