我一直在阅读这个网站上的正则表达式问题,但我的问题似乎有点不同.我需要匹配一个2位数字,例如23到75.我在HP-UX Unix系统上这样做.我找到了3 – 44但是或者任何数字的例子,没有任何长度固定的,这有点令人惊讶,但也许我不明白可变长度的例子答案.
由于您没有指出这是否是任何其他字符(或更大字符串的中间),我在此处包含了逻辑,以指示您需要匹配字符串的数字部分.这应该会让你到那里.我们正在为我们正在寻找的第二个数字创建一个范围,只允许这些字符.然后我们将它与其他范围进行比较:
(2[3456789]|[3456][0-9]|7[012345])
正如oded所指出的,你也可以这样做,因为子范围也被接受(取决于你正在使用的应用程序中REGEX的实现):
(2[3-9]|[3-6][0-9]|7[0-5])
根据标题,您可以将最后5个更改为9到75-79:
(2[3-9]|[3-6][0-9]|7[0-9])
如果您尝试将这些数字专门用作字符串(从开始到结束),那么您将使用修饰符^和$来指示字符串的开头和结尾.
Regex系列有一个很好的技术参考:
http://www.regular-expressions.info/numericranges.html
如果您正在使用类似grep的内容并尝试将包含该数字的行与其他内容进行匹配,那么您可以对79到79的范围执行类似的操作:
grep "[^0-9]?(2[3-9]|[3-6][0-9]|7[0-9])[^0-9]?" folder