Regex 使用正则表达式删除最后的前导零
有没有办法单独使用正则表达式来解决这个问题 我有一根绳子,例如:Regex 使用正则表达式删除最后的前导零,regex,Regex,有没有办法单独使用正则表达式来解决这个问题 我有一根绳子,例如: 1234500变为123,45 12340500变为123405 123000变为123 知道我们可以使用组(即$1,$2,等等),有没有一种方法可以单独使用纯正则表达式实现这种转换,而不必在,处拆分字符串 谢谢这将删除结尾的零和逗号(如果后面只有零) 查找:,?0+$ 替换:NOTHING 说明: ,? # optional comma 0+ # 1 or more zeros $ # end of line
1234500
变为123,45
12340500
变为123405
123000
变为123
知道我们可以使用组(即$1
,$2
,等等),有没有一种方法可以单独使用纯正则表达式实现这种转换,而不必在,
处拆分字符串
谢谢这将删除结尾的零和逗号(如果后面只有零)
- 查找:
,?0+$
- 替换:
NOTHING
,? # optional comma
0+ # 1 or more zeros
$ # end of line
如果要在结束零之前匹配所有内容,请使用:
^[\d,]+?(?=,?0+$)
- 查找^([0-9,]*?)(?:,?0+)$
- 第一组是结果
^
匹配字符串的开头([0-9,]*?)
捕获组1:最少匹配以下数字和逗号(?:,0+)
可以选择匹配一个可选逗号,后跟一个或多个零。这将处理字符串没有尾随零且无需“替换”的情况$
匹配字符串的结尾000
组成的字符串(例如,组1)将是空字符串。如果你真的想保持至少一个零,那么使用:
^([0-9,]+?)(?:,?0+)?$
let测试=[
'123,450',
'123,40500',
'123,000',
'123',
'000'
]
对于(让测试中的测试){
测试=测试匹配(/^([0-9,]+?)(?:,?0+)$/)[1];
控制台日志(测试);
}
我相信OP想要的结果是所有内容都符合,但不包括正则表达式匹配的内容。@Booboo:可能是,正在等待澄清。您想在结束零之前匹配所有内容还是删除这些结束零?100000的预期结果是什么?