如何在分隔符正则表达式 javascript 之间选择 char

How to select char between delimiters regex javascript

本文关键字:之间 选择 char javascript 正则表达式 分隔符      更新时间:2023-09-26

我在javascript中的正则表达式有问题...

如何选择 |test1| 和 |test2 单词 1 任何字符|

单词 |test1| 测试字 |test2 字 1 任意字符| 测试

管道字符是分隔符。

谢谢

var str = 'word |test1| test word |test2 word 1 any char| test';
alert(JSON.stringify(str.match(/'|[^|]+'|/g)));

"word |test1| test word |test2 word 1 any char| test".match(/('|.*?'|)/g)

让我们解释一下/('|.*?'|)/g

  • ()是捕获组,

  • '| '|抓住我|之间的东西,需要跳过它,因为它在正则表达式中有不同的含义,即 OR,

  • .*?抓住它们之间的所有东西,并添加?说不要贪婪,这样它就不会给我们像|a| |b|这样的东西,但是当它找到第一个管道时,它可以停止并开始搜索下一个,

  • 最后g意味着不仅获得第一个匹配项; 全局搜索,

  • /('|.*?'|)/g在一起

这个应该可以工作:

var string = 'word |test1| test word |test2 word 1 any char| test';
var data = string.match(/'|[^'|]*?'|/g) // match strings between delimiters
    .map(function (str) {
        return str.replace(/'|/g, ''); // remove delimiters
    });
console.log(data); // ["test1", "test2 word 1 any char"]