javascript regexp 在两个字符串之间找到多个匹配项

用户1841488

如何在 javascript 中编写正则表达式,以便将字符串解析"1.aaa 2.bbb 3.ccc"["aaa","bbb","ccc"].

这是我的代码:

var str = "1.aaa 2.bbb 3.ccc";
var reg1 = /\d+\.(.*)\d+\./g; //sub regexp $1 match "aaa 2.bbb"
var reg2 = /\d+\.(.*?)\d+\./g; //sub regexp $1 match "aaa"
var reg3 = /\d+\.(.*?)(?=\d+\.)/g; //sub regexp $1 match "aaa" 、 "bbb"
var reg4 = /\d+\.(.*?)(?=\d+\.)|\d+\.(.*)/g; //sub regexp $1 match "aaa" 、 "bbb"、undefined,my expect is $1 match "aaa"、“bbb”、“ccc”

str.replace(reg1, function(match, p1, p2, offset, string) {
  console.log("---reg1---")
  console.log(p1)
})

str.replace(reg2, function(match, p1, p2, offset, string) {
  console.log("---reg2---")
  console.log(p1)
})

str.replace(reg3, function(match, p1, p2, offset, string) {
  console.log("---reg3---")
  console.log(p1)
})

str.replace(reg4, function(match, p1, p2, offset, string) {
  console.log("---reg4---")
  console.log(p1) //sub regexp $1 match "aaa" 、 "bbb"、undefined,my expect is $1 match "aaa"、“bbb”、“ccc”
})

有没有一个简单的解决方案来做到这一点?

杰森·尼科尔斯

我会做这样的事情:(更新第二个例子)

var s = "1.aaa 2.bbb 3.ccc";
var r = /\d+\.([^\d]*)/g;

var s2 = "1.aaa[2017-01-01] 2.bbb 3.ccc"
var s3 = "1.aaa[2017-01-01] 2.bbb[2017-01-01] 3.ccc"
var s4 = "1.aaa[2017-01-01] 2.bbb 3.ccc[2017-01-01]"
var r2 = /\d+\.(.*?)( |$)/g

function getGroups(s,r){
    var matches = [];
    var m = r.exec(s);

    while (m != null){
        matches.push(m[1]);
        m=r.exec(s);
    }
    return matches;
}
console.log(getGroups(s,r)); // ['aaa','bbb','ccc']
console.log(getGroups(s2,r2)); // [ 'aaa[2017-01-01]', 'bbb', 'ccc' ]
console.log(getGroups(s3,r2)); // [ 'aaa[2017-01-01]', 'bbb[2017-01-01]', 'ccc' ]
console.log(getGroups(s4,r2)); // [ 'aaa[2017-01-01]', 'bbb', 'ccc[2017-01-01]' ]

有关更多信息,请参阅此问题

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Javascript中的RegExp:在两个字符串之间获取字符串

来自分类Dev

获取两个字符串之间最长的完美匹配javascript

来自分类Dev

获取JavaScript中两个字符串之间的字符串的第一个匹配项

来自分类Dev

JavaScript RegExp用多个其他字符串替换多个字符串

来自分类Dev

使用Javascript获取两个字符串之间的字符串数组

来自分类Dev

用JavaScript获取两个字符串之间的字符串

来自分类Dev

使用Javascript获取两个字符串之间的字符串数组

来自分类Dev

在 Perl 中使用 Regexp 在两个字符串之间提取字符串

来自分类Dev

汉明(Hamming)JavaScript测试(练习)-匹配两个字符串之间的字母

来自分类Dev

Javascript:查找两个字符串之间的每个字符串实例

来自分类Dev

如何在 Javascript 中粗略匹配两个字符串?

来自分类Dev

REGEXP_LIKE在两个字符串之间寻找一个字符串

来自分类Dev

使用Javascript检测两个字符串之间的差异

来自分类Dev

使用Javascript检测两个字符串之间的差异

来自分类Dev

如何在两个字符串javascript之间选择文本?

来自分类Dev

JavaScript 中两个字符串之间的公共字母

来自分类Dev

寻找regExp以返回与pdfgrep一起使用的两个字符串之间的行

来自分类Dev

如何在Oracle中使用regexp_replace提取两个字符串之间的值?

来自分类Dev

javascript:返回两个字符串之间的字符串相似度分数

来自分类Dev

Oracle SQL:从两个字符串之间的 blob 返回字符串(可能使用 REGEXP_SUBSTR)

来自分类Dev

如何找到没有。javascript中两个字符串中的相似字符的集合

来自分类Dev

javascript正则表达式匹配两个字符串,并计算其中的字符数

来自分类Dev

两个字符串之间的 JavaScript 正则表达式而不捕获第一个字符串

来自分类Dev

Javascript匹配字符并在两个字符之间添加空格

来自分类Dev

ORACLE:如何使用regexp_like查找两个字符之间带有单引号的字符串?

来自分类Dev

使用正则表达式查找Javascript中两个字符串之间的差异

来自分类Dev

Javascript正则表达式可以匹配两个字符串之间的子字符串,但是子字符串可以包含DOT(。)

来自分类Dev

Javascript RegExp模式匹配

来自分类Dev

正则表达式可在两个字符串之间找到多个匹配项

Related 相关文章

  1. 1

    Javascript中的RegExp:在两个字符串之间获取字符串

  2. 2

    获取两个字符串之间最长的完美匹配javascript

  3. 3

    获取JavaScript中两个字符串之间的字符串的第一个匹配项

  4. 4

    JavaScript RegExp用多个其他字符串替换多个字符串

  5. 5

    使用Javascript获取两个字符串之间的字符串数组

  6. 6

    用JavaScript获取两个字符串之间的字符串

  7. 7

    使用Javascript获取两个字符串之间的字符串数组

  8. 8

    在 Perl 中使用 Regexp 在两个字符串之间提取字符串

  9. 9

    汉明(Hamming)JavaScript测试(练习)-匹配两个字符串之间的字母

  10. 10

    Javascript:查找两个字符串之间的每个字符串实例

  11. 11

    如何在 Javascript 中粗略匹配两个字符串?

  12. 12

    REGEXP_LIKE在两个字符串之间寻找一个字符串

  13. 13

    使用Javascript检测两个字符串之间的差异

  14. 14

    使用Javascript检测两个字符串之间的差异

  15. 15

    如何在两个字符串javascript之间选择文本?

  16. 16

    JavaScript 中两个字符串之间的公共字母

  17. 17

    寻找regExp以返回与pdfgrep一起使用的两个字符串之间的行

  18. 18

    如何在Oracle中使用regexp_replace提取两个字符串之间的值?

  19. 19

    javascript:返回两个字符串之间的字符串相似度分数

  20. 20

    Oracle SQL:从两个字符串之间的 blob 返回字符串(可能使用 REGEXP_SUBSTR)

  21. 21

    如何找到没有。javascript中两个字符串中的相似字符的集合

  22. 22

    javascript正则表达式匹配两个字符串,并计算其中的字符数

  23. 23

    两个字符串之间的 JavaScript 正则表达式而不捕获第一个字符串

  24. 24

    Javascript匹配字符并在两个字符之间添加空格

  25. 25

    ORACLE:如何使用regexp_like查找两个字符之间带有单引号的字符串?

  26. 26

    使用正则表达式查找Javascript中两个字符串之间的差异

  27. 27

    Javascript正则表达式可以匹配两个字符串之间的子字符串,但是子字符串可以包含DOT(。)

  28. 28

    Javascript RegExp模式匹配

  29. 29

    正则表达式可在两个字符串之间找到多个匹配项

热门标签

归档