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

时间:2017-12-14 11:15:13

标签: regex

我的正则表达式很弱,如果是以下字符串

"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)

我做错了什么?

3 个答案:

答案 0 :(得分:6)

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

^"MyId":[1-9][0-9]+$

RegEx Demo

如果还允许前导零,请使用:

^"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]+$