繁体   English   中英

忽略正则表达式中的字符

[英]Ignore character in regex

我想在下面的正则表达式中忽略 0。 目前,正则表达式返回一个数组并将字符拆分为 n 位数字。 我希望正则表达式忽略字符 0。

var n = 2
var str = '123045';
var regex2 = new RegExp(`.{1,${n}}`,'g');
var reg = str.match(regex2)

实现此目的的一种方法是在执行匹配之前删除0 这可以通过使用.replace()来完成,如下所示:

 const n = 2 const str = '123045'; const regex2 = new RegExp(`.{1,${n}}`, 'g'); const reg = str.replace(/0/g, '').match(regex2); console.log(reg); // ['12', '34', '5']

要忽略前导零,您可以为匹配数组中的每个元素匹配0后跟n个数字(使用.map() )和.replace()通过在组中捕获剩余数字并使用组作为替代:

 const n = 2 const str = '123045'; const regex2 = new RegExp(`.{1,${n}}`, 'g'); const reg = str.match(regex2).map(m => m.replace(/0(\\d+)/g, '$1')).join('').match(regex2); console.log(reg); // ['12', '30', '45']

最好的方法是使用替换,

但是如果你想使用正则表达式 try (?!0)[\\d]它会给你匹配 1,2,3,4,5

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM