有没有办法使正则表达式只匹配数字高于特定的多位数值的字符串?

时间:2014-04-29 06:01:02

标签: regex integer

我知道我可以通过执行类似[2-9]的操作来匹配数字我只会匹配数字2和更高的数字,但我可以为数字更多的数字做些什么?

例如,如果我想匹配的数字高于734我可以[7-9][3-9][4-9],但这与某些数字不匹配,例如741

有没有正确的方法呢?此外,是否可以使用任意数量的数字?

3 个答案:

答案 0 :(得分:2)

您需要拼出所有可能的 textual 表示允许的数字。这不是正则表达式所擅长的 - 它会起作用,但它很难维护/改变:

^(73[4-9]|7[4-9]\d|[89]\d\d|\d{4,})$

匹配734及以上的所有数字。

live on regex101.com

答案 1 :(得分:0)

不,你只能用正则表达式做到这一点。如果您尝试在程序或脚本中执行此操作,则应使用正则表达式提取数字,然后尝试将其解析为数字。

或者,如果您只是尝试处理文件并且不关心它是如何完成的,那么可以使用各种工具来为您完成。

答案 2 :(得分:-1)

使用输入中找到的位数

可能是你有' n'输入中的数字

n = 4的 输入= 1234;或者数字= 8704

所以,  你可以用

[0-9]{4}

或者 有些时候你需要匹配数字必须至少高于2意味着

[2-9]{4}

可能是我有4或5的数字

[2-9]{4,5}

匹配

8567

94877

但不匹配

2

999999999

7937827857