您可以使用此正则表达式(可能需要稍作更改,具体取决于您是要检测行的开始/结束还是这些类型的工具)。我在内的值周围添加了一个补偿组,
<>因为此正则表达式还将匹配之前
<和之后的char
>。
如果您
<>可以放置在字符串的开头/结尾:
/(?:[^<]|^)<([a-zA-Z0-9. _]+)>(?:[^<]|$)/g
如果您不需要:
/(?:[^<])<([a-zA-Z0-9. _]+)>(?:[^<])/g
注意:不能确定是否与否定,但可能比负面观察快。
编辑:从您的评论,我不确定您知道捕获组。它允许您提取正则表达式的部分,而不必提取整个匹配的表达式。
要在Javascript中使用它们,请参见以下示例(请注意,您必须删除
/regex的开头和结尾,并对regex对象也进行转义):
var myRegex = new RegExp('(?:[^<]|^)\<([a-zA-Z0-9. _]+)\>(?:[^<]|$)', 'g'), testStr = '(<<a1>> * <b1> * <c1> * <d1>) * <<e1>>', match, elem = document.getElementById('result');while (match = myRegex.exec(testStr)) { elem.innerHTML = elem.innerHTML + match[1] + '<br>';}<div id="result"></div>


