我的正则表达式很弱,如果是以下字符串
"OtherId":47
"OtherId":7
"MyId":47 (Match this one)
"MyId":7
我想拿起有" MyId"和一个不是1 - 9的数字
我以为我可以使用:
RegEx: How can I match all numbers greater than 49?
组合使用: Regular Expressions: Is there an AND operator?
但它没有发生......你可以在这里看到我失败的尝试:
https://www.regextester.com/index.php?fam=99753
哪个是
\b"MyId":\b(?=.*^[0-10]\d)
我做错了什么?
答案 0 :(得分:6)
您可以使用此正则表达式匹配任何数字>= 10
:
^"MyId":[1-9][0-9]+$
如果还允许前导零,请使用:
^"MyId":0*[1-9][0-9]+$
[1-9]
确保以1-9
开头的号码和[0-9]+
在第一个数字后的任意位数匹配1个或多个。
答案 1 :(得分:0)
基本上,您正在寻找2个或更多数字:
\"MyId\"\:(\d{2,})
我已经转义了引号和冒号,{2,}
表示2或更多。
答案 2 :(得分:0)
如果您需要与任何大于9的数字完全匹配
^"MyId":[1-9][0-9]+$