如何在分隔符之间选择字符正则表达式javascript
我对javascript中的正则表达式有问题 如何在任何字符中选择| test1 |和| test2 word 1 | word| test1 |测试word|测试2 word 1任何字符|测试 ? 管道字符是分隔符 谢谢这个应该可以:如何在分隔符之间选择字符正则表达式javascript,javascript,regex,string,char,Javascript,Regex,String,Char,我对javascript中的正则表达式有问题 如何在任何字符中选择| test1 |和| test2 word 1 | word| test1 |测试word|测试2 word 1任何字符|测试 ? 管道字符是分隔符 谢谢这个应该可以: var string = 'word |test1| test word |test2 word 1 any char| test'; var data = string.match(/\|[^\|]*?\|/g) // match strings betwee
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"]
var str='word | test1 | test word | test2 word 1 any char | test';
警报(JSON.stringify(str.match(/\\\\\[^\\\\]+\\\\\\\\\;/g))代码>
让我们解释一下
()
是捕获组
\\\\\\\
抓取\
之间的内容,并需要跳过它,因为它在正则表达式中有不同的含义,即或
*?
抓住他们之间的一切,并添加了?
来表示不要贪婪,这样它就不会给我们像| a | | b |
这样的东西,但当它找到第一根管道时,它可以停止并开始搜索下一根管道
g
在末尾意味着获得所有匹配,而不仅仅是第一个匹配;全球搜索
/(\\\\\\\\\\\)/g
一起
好的,我很完美!谢谢:)与jcubic相同的正则表达式,但结尾的m不同:)m
m只是一个错误。不同之处在于map函数删除了分隔符。谢谢,3个人同时使用了一个类似的正则表达式,可能是相同的结果,但语法效果不同,很好的解释:)
"word |test1| test word |test2 word 1 any char| test".match(/(\|.*?\|)/g)