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

阅读 2k
1 个回答

split

所以这里你的原因是子表达式过剩导致的,除了最外层的括号里面的括号都要不得,那么这个正则可以这么写:

'test<br />&gt;>No.17132905<br />bbb<br />&gt;&gt;No.17132905<br />test'.split(/((?:&gt;|\>){2}No\.\d{1,11})/)

使用(?:pattern)的格式匹配 pattern 但不获取匹配结果。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题