我们可以在正则表达式模式中使用比较吗?我想检查一个最近匹配的组是否是greater than一个数字.这是模式:size=(\d+)我想看看是否(\d+)>200返回真实.
你不能用相同的语法来做,但是你可以使用更复杂的表达式,例如:
大于200:
([1-9]\d+|(?!200)[2-9])\d\d
Run Code Online (Sandbox Code Playgroud)
包括200:
([1-9]\d+|[2-9])\d\d
Run Code Online (Sandbox Code Playgroud)
然而,当你接近其他(和更大的)数字时,它将是无法控制的.
您最好匹配所有数字,然后遍历结果以进行> 200检查,并删除不符合的数字.
注意:上面的正则表达式只是为了表明在纯正则表达式中匹配数字大于200是可能的.但是不建议这样做,更复杂/可变数字将是不可行的.
OP在评论中提到他们想要匹配> 30*1024*1024,这是> 31457280
为了证明为什么正则表达式是一种痛苦,我写了所需的模式:
\b((3[1-9][4-9][5-9][7-9][2-9][8-9]\d+)|(3[1-9][4-9][5-9][7-9][3-9]\d{2,})|(3[1-9][4-9][5-9][8-9]\d{3,})|(3[1-9][4-9][6-9]\d{4,})|(3[1-9][5-9]\d{5,})|(3[2-9]\d{6,})|(?!31457280)(4\d{7,}))\b
Run Code Online (Sandbox Code Playgroud)
(不是很漂亮!)
| 归档时间: |
|
| 查看次数: |
100 次 |
| 最近记录: |