JS Split正则表达式无法整体输出

问题描述

字符串内容:
test<br />&gt;&gt;No.17132905<br />bbb<br />&gt;&gt;No.17132905<br />test

想通过split分割为:

['test<br />', '&gt;&gt;No.17132905', '<br />bbb<br />', '&gt;&gt;No.17132905', '<br />test']

现在我使用下面的匹配方法:

text.split(/(((&gt;){2}|>{2})(No\.){0,1}\d{1,11})/g);

实际输出的是:

['test<br />', 
'&gt;&gt;No.17132905', 
'&gt;&gt', 
'&gt;', 
'No.', 
'<br />bbb<br />', 
'&gt;&gt;No.17132905', 
'&gt;&gt;','&gt;','No.','<br />test']

问题出现的环境背景及自己尝试过哪些方法

React-Native 0.58


九州编程
浏览 427回答 1
1回答

繁星coding

所以这里你的原因是子表达式过剩导致的,除了最外层的括号里面的括号都要不得,那么这个正则可以这么写:'test<br&nbsp;/>&gt;>No.17132905<br&nbsp;/>bbb<br&nbsp;/>&gt;&gt;No.17132905<br&nbsp;/>test'.split(/((?:&gt;|\>){2}No\.\d{1,11})/)使用(?:pattern)的格式匹配 pattern 但不获取匹配结果。
打开App,查看更多内容
随时随地看视频慕课网APP