正则表达式数字范围

时间:2012-08-24 09:38:14

标签: regex sed grep

我有一个文本文件,我想在其中找到一些代码,每个代码包含3位数字+ 7个大写字母 例子:374ANSKJDS; 3UKRHDPO; 99RWLFOPE 我的问题如何使用grep或sed通过数值范围找到这些代码? 例如,我想找到从750到900的代码?

谢谢

修改

现在我使用grep做了它,感谢所有人,有人可以命令在windows下使用awk吗?

3 个答案:

答案 0 :(得分:3)

您无法使用正则表达式比较数字的值。但是,您可以通过指定多个模式来解决此问题。对于您指定的间隔(750-900),您可以使用以下正则表达式:

(7[5-9][0-9]|8[0-9][0-9]|900)[A-Z]{7}

答案 1 :(得分:1)

你可以使用这种正则表达式

((7[5-9][0-9])|(8[0-9][0-9])|(900))[A-Z]{7}

答案 2 :(得分:1)

您可以使用以下方式匹配所有这些:

\d{1,3}[A-Z]{7}

由于您希望匹配范围,因此需要为每个范围替换\d{1,3}部分。因为正则表达式适用于字符串,you can not write类似 [750-900] 以匹配范围。因此,对于[750-900]范围,请使用:

(7[5-9]\d|8\d\d|900)[A-Z]{7}