我想在#
之后找到字符串,如果#a
或#a <div>..
我遇到问题
正在努力返回a
,但如果#a<div>..
将返回a<div>
。
如果跟踪字符串为<div>
或<br>
或<p>
而不仅仅是中断,该如何避免
e.g
#a<div>bc
- a
https://regex101.com/r/xD1vN0/1
var re = /#([^#\s]*)/g;
答案 0 :(得分:3)
您可以将正则表达式与tempered greedy token:
一起使用/#((?:(?!<(?:div|br|p)>)[^#\s])*)/g
(?:(?!<(?:div|br|p)>)[^#\s])*
是一个驯化的贪婪令牌,可以匹配#
以外的任何字符以及不会启动<div>
,<br>
或{{序列的空格的空格1}}。
JS演示:
<p>
&#13;
答案 1 :(得分:0)
如果达到<
,您可以使用此模式中断
var re = /#([^#\s^<]*)/g;