Regex 正则表达式数值范围

Regex 正则表达式数值范围,regex,sed,grep,Regex,Sed,Grep,我有一个文本文件,我想在其中找到一些代码,每个代码由3位数字+7个大写字母组成 示例:374ANSKJDS;3UKRHDPO;99RWLFOPE 我的问题是如何使用grep或sed按数字范围查找这些代码? 例如,我想找到从750到900的代码 谢谢 编辑 感谢大家,现在我使用grep完成了这项工作,有人能在windows下使用awk发出命令吗?您不能使用正则表达式比较数字的值。但是,您可以通过指定多个模式来解决这个问题。对于指定的间隔(750-900),可以使用以下正则表达式: (7[5-9][

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

谢谢

编辑


感谢大家,现在我使用grep完成了这项工作,有人能在windows下使用awk发出命令吗?

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

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

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

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

您可以使用这种regexp

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

您可以使用这种regexp

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

您可以使用以下方法匹配所有这些选项:

\d{1,3}[A-Z]{7}
由于要匹配一个范围,因此需要为每个范围替换
\d{1,3}
部分。因为正则表达式处理字符串,类似于[750-900]来匹配一个范围。因此,对于[750-900]范围,使用以下公式:

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

您可以使用以下方法匹配所有这些选项:

\d{1,3}[A-Z]{7}
由于要匹配一个范围,因此需要为每个范围替换
\d{1,3}
部分。因为正则表达式处理字符串,类似于[750-900]来匹配一个范围。因此,对于[750-900]范围,使用以下公式:

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

我能做的最好的是,[7-9][0-9][0-9],这是错误的,因为它会发现,例如999,我不想要它。我能做的最好的是,[7-9][0-9][0-9],这是错误的,因为它会发现,例如,999,我不想要它。如何,这也会匹配超过7个大写字母的文本(例如,750ABCDEFGHI)。你有两种选择:用“[A-Z][A-Z][A-Z][A-Z][A-Z][A-Z][A-Z]”替换“[A-Z]+”,或者了解分隔符(如果有分隔符,比如你的示例中的尾随空格),然后将其添加到组中:“([7][5-9][0-9][A-Z]+)”太棒了!感谢@Tim提供的系列规格。现在我又想起了。:)sed和grep可能具有单词元序列的开头和结尾
\
\b
,这将阻止更多的数字和字母包含在搜索结果中。无论如何,这也将匹配超过7个大写字母的文本(例如750ABCDEFGHI)。你有两种选择:用“[A-Z][A-Z][A-Z][A-Z][A-Z][A-Z][A-Z]”替换“[A-Z]+”,或者了解分隔符(如果有分隔符,比如你的示例中的尾随空格),然后将其添加到组中:“([7][5-9][0-9][A-Z]+)”太棒了!感谢@Tim提供的系列规格。现在我又想起了。:)sed和grep可能具有单词元序列的开头和结尾
\
\b
,这将阻止更多的数字和字母包含在搜索结果中。哦。。似乎我有一个副本)哦。。似乎我有一个副本)