Regex 字符串正则表达式中的第一个非零值

Regex 字符串正则表达式中的第一个非零值,regex,Regex,从今天早上开始,我在互联网上(当然也是如此)努力寻找以下任务的解决方案: 考虑到这些条件: '0012' '1012' '0111' '0001' 如何找到第一个非零数字? 输出应分别为: '0012': 1 '1012': 1 '0111': 1 '0001': 1 是否有任何正则表达式向导可以使用他的一些黑魔法来解决这个问题?一个[1-9]的正则表达式将匹配第一个非零数字。查找: ^0*([1-9]).*$ 替换为: \1 也就是说,我们用()中的内容替换整个字符串;0*后面的第一个

从今天早上开始,我在互联网上(当然也是如此)努力寻找以下任务的解决方案:

考虑到这些条件:

'0012'
'1012'
'0111'
'0001'
如何找到第一个非零数字? 输出应分别为:

'0012': 1
'1012': 1
'0111': 1
'0001': 1

是否有任何正则表达式向导可以使用他的一些黑魔法来解决这个问题?

一个
[1-9]
的正则表达式将匹配第一个非零数字。

查找:

^0*([1-9]).*$
替换为:

\1

也就是说,我们用
()
中的内容替换整个字符串;
0*
后面的第一个非零数字,它匹配0或任何数量的零,后面跟任何数字(我们对此不感兴趣)。

您可以尝试这种模式
0{0,3}([1-9])\d{0,3}

您有一个生成
0
(或“not code>1)的数据示例吗?您使用的是哪种编程环境?您想标记第一个非零数字还是第一个不以数字
0
开头的数字?我提出的示例是我正在处理的数据的正确样本。@西摩我们要问的问题是-显示不匹配的用例。没有非匹配项的匹配没有多大意义。@blhsing说得很对!谢谢大家的帮助您的解决方案和@blhsing one有什么区别?我的解决方案是为查找/替换而设计的,而他/她的解决方案仅用于匹配/提取