我想知道如何在字符串开头的零之后匹配字符串。
所以字符串应该匹配的例子是
ABC0123 -> ABC0123
0ABC0123 -> ABC0123
000ABC0123 -> ABC0123
我已经尝试过[^0]+$
,但这会返回以下错误
ABC0123 -> 123
0ABC0123 -> 123
000ABC0123 -> 123
我想知道如何在字符串开头的零之后匹配字符串。
所以字符串应该匹配的例子是
ABC0123 -> ABC0123
0ABC0123 -> ABC0123
000ABC0123 -> ABC0123
我已经尝试过[^0]+$
,但这会返回以下错误
ABC0123 -> 123
0ABC0123 -> 123
000ABC0123 -> 123
在字符串开头的零之后匹配字符串可以通过积极的后视来匹配
(?<=^0*)[^0].*
向后查找匹配在字符串开头(?<=^0*)
紧跟零个或多个字符的位置,并将匹配字符串的其余部分以外的字符。请参阅此正则表达式演示。0
[^0].*
0
在某些正则表达式(如 PCRE 或 Onigmo)中,您可以使用\K
匹配重置运算符:
^0*\K.+
将匹配字符串开头的^0*
零个或多个字符,并将从匹配内存缓冲区中丢弃这些匹配的字符。请参阅此正则表达式演示。0
\K
在 ICU 正则表达式风格(Rstringr
函数、Swift)或 Java 中,您可以使用约束宽度的lookbehind模式。比如说,你知道前面不能有超过 100 个零。然后你可以使用
(?<=^0{0,100})[^0].*
(?<=^0{0,100})
后视匹配在字符串开头紧跟零到 100 个零的位置,并将[^0].*
匹配0
字符串的其余部分以外的字符。请参阅此正则表达式演示。