Javascript 正则表达式采用 {{}} 之间的字符串,但排除那些包裹在 <span> 中的字符串
Javascript regexp take strings between {{}} but excluse those wrapped in <span>
我想使用正则表达式来包装 {{ }}
之间的所有字符串,而不是 <span class="myclass">{{ }}</span>
.
之间的字符串
我想我需要排除 <span class="myclass">{{ }}</span>
但是当我尝试使用它时:
text = text.replace(/(!\<span class=\"myclass\"\>.*?<\/span>)|(\{\{.*?\}\})/g, '<span class="myclass"></span>');
它还需要 <span class="myclass">{{ }}</span>
个元素。
我做错了什么?
文本示例:
<span class="myclass">{{$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$}}</span>
<p>{{$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$}}</p>
<p>{{any text}}</p>
正则表达式的第二部分(在管道之后)(\{\{.*?\}\})
匹配 {{}} 之间的所有内容,无论它是否在跨度之间。您需要将其包装在不匹配的跨度正则表达式条件之间。
正则表达式必须是我 /^(?!<span class=\"myclass\"\>).*(\{\{.*?\}\}).*(?!<\/span>)$/g
:
(\{\{.*?\}\})
将 select {{}} 之间的所有内容,但它封装在完成工作的跨度的负前瞻之间
您可以在这里进行测试:https://regex101.com/r/rY2cS4/5
我想使用正则表达式来包装 {{ }}
之间的所有字符串,而不是 <span class="myclass">{{ }}</span>
.
我想我需要排除 <span class="myclass">{{ }}</span>
但是当我尝试使用它时:
text = text.replace(/(!\<span class=\"myclass\"\>.*?<\/span>)|(\{\{.*?\}\})/g, '<span class="myclass"></span>');
它还需要 <span class="myclass">{{ }}</span>
个元素。
我做错了什么?
文本示例:
<span class="myclass">{{$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$}}</span>
<p>{{$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$}}</p>
<p>{{any text}}</p>
正则表达式的第二部分(在管道之后)(\{\{.*?\}\})
匹配 {{}} 之间的所有内容,无论它是否在跨度之间。您需要将其包装在不匹配的跨度正则表达式条件之间。
正则表达式必须是我 /^(?!<span class=\"myclass\"\>).*(\{\{.*?\}\}).*(?!<\/span>)$/g
:
(\{\{.*?\}\})
将 select {{}} 之间的所有内容,但它封装在完成工作的跨度的负前瞻之间
您可以在这里进行测试:https://regex101.com/r/rY2cS4/5