通过正则表达式在JavaScript中分割线?

罗伊·纳米尔(Roi Namir)

我有这种文本结构:

1.6.1 Members................................................................ 12
1.6.2 Accessibility.......................................................... 13
1.6.3 Type parameters........................................................ 13
1.6.4 The T generic type aka <T>............................................. 13

我需要创建JS对象:

{ 
  num:"1.6.1",
  txt:"Members"
},
{ 
  num:"1.6.2",
  txt:"Accessibility"
} ...

那不是问题。

问题是我想通过正向超前通过Regex split提取值:

通过拆分一次看到,明年字符是字母

在此处输入图片说明

我尝试了什么:

'1.6.1 Members........... 12'.split(/\s(?=(?:[\w\. ])+$)/i)

这工作正常:

["1.6.1", "Members...........", "12"] // I don't care about the 12.

但是如果我有2个单词或更多:

'1.6.3 Type parameters................ 13'.split(/\s(?=(?:[\w\. ])+$)/i)

结果是:

["1.6.3", "Type", "parameters................", "13"] //再次我不在乎13。

我当然可以加入他们的行列,但我希望这些词能够在一起。

题 :

我该如何增强我的正则表达式而不要分词?

所需结果:

["1.6.3", "Type parameters"]

要么

["1.6.3", "Type parameters........"] //我稍后会删除其他内容

要么

["1.6.3", "Type parameters........13"]//我稍后会删除其他内容

NB

我知道我可以通过“”或其他更简单的解决方案进行拆分,但是(出于纯粹的知识)我正在寻求对我的解决方案的增强,解决方案使用正向超前拆分

完整的在线示例:

nb2:

文本中间也可以包含大写字母。

阿努巴瓦

您可以使用此正则表达式:

/^(\d+(?:\.\d+)*) (\w+(?: \w+)*)/gm

并使用匹配的组#1和匹配的组#2获得所需的匹配项。

在线正则表达式演示

更新:对于String#split您可以使用这个表达式:

/ +(?=[A-Z\d])/g

正则表达式演示

更新2:为了使章名中也可以有大写字母,需要使用更复杂的正则表达式:

var re = /(\D +(?=[a-z]))| +(?=[a-z\d])/gmi; 
var str = '1.6.3 Type Foo Bar........................................................ 13';
var m = str.split( re );
console.log(m[0], ',', m.slice(1, -1).join(''), ',', m.pop() );

//=> 1.6.3 , Type Foo Bar........................................................ , 13

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Java中使用分割线分割()表达式

来自分类Dev

javascript分割正则表达式

来自分类Dev

通过正则表达式分割字符串

来自分类Dev

使用正则表达式从字符串中分割数字

来自分类Dev

如何在正则表达式模式下不在clojure中分割字符串

来自分类Dev

正则表达式在C#中分割OSX df -h输出

来自分类Dev

如何确定在正则表达式中分割哪个空格?

来自分类Dev

使用正则表达式在向量中分割特定的字符串

来自分类Dev

通过javascript正则表达式验证SoundCloud URL

来自分类Dev

通过javascript验证特定字符的正则表达式

来自分类Dev

Javascript正则表达式

来自分类Dev

正则表达式混淆JavaScript

来自分类Dev

正则表达式匹配-Javascript

来自分类Dev

$ 1正则表达式javascript

来自分类Dev

简化JavaScript正则表达式

来自分类Dev

正则表达式匹配(JavaScript)

来自分类Dev

Javascript match(),正则表达式

来自分类Dev

Javascript帮助正则表达式

来自分类Dev

Javascript多行正则表达式

来自分类Dev

基本Javascript正则表达式

来自分类Dev

正则表达式javascript或jquery

来自分类Dev

JavaScript正则表达式组合

来自分类Dev

Javascript多字正则表达式

来自分类Dev

Javascript正则表达式模式

来自分类Dev

javascript +正则表达式

来自分类Dev

javascript正则表达式

来自分类Dev

无效的正则表达式Javascript

来自分类Dev

JavaScript正则表达式构造

来自分类Dev

Javascript正则表达式