将字符串与单词和数字1-9匹配

chr*_*989 0 regex

在以下字符串的情况下,我的正则表达式很弱

"OtherId":47
"OtherId":7
"MyId":47     (Match this one)
"MyId":7
Run Code Online (Sandbox Code Playgroud)

我想拿起有"MyId"的字符串和一个不是1 - 9的数字

我以为我可以使用:

RegEx:如何匹配所有大于49的数字?

结合使用: 正则表达式:是否有AND运算符?

但它没有发生......你可以在这里看到我失败的尝试:

https://www.regextester.com/index.php?fam=99753

这是

\b"MyId":\b(?=.*^[0-10]\d)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

anu*_*ava 6

您可以使用此正则表达式匹配任何数字>= 10:

^"MyId":[1-9][0-9]+$
Run Code Online (Sandbox Code Playgroud)

RegEx演示

如果允许前导零,则使用:

^"MyId":0*[1-9][0-9]+$
Run Code Online (Sandbox Code Playgroud)

[1-9]确保数字以第一个数字后的任何数字开头1-9[0-9]+匹配1个或多个数字.

  • 如果要允许前导零,则使用`^"MyId":0*[1-9] [0-9] + $` (2认同)