regex - 使用正则表达式仅匹配 5xx

标签 regex bash grep

我想找到 500-599 之间的所有数字。我对正则表达式很陌生,我想到了这个:

5[0-9][0-9]+

这工作正常,匹配 566,577,500。但它也匹配 6578。这是我不想要的。

编辑:

这是我的文件内容:

asd 554
sad
sads

dsa


456

sa
d

dsa
asda
d500
521
519 asdasd
524 asdasdsdsadsdasd sadsadsadasdsd asdsa dsa dsadsad sad asdas dsa sad sad asds a 543

正如我尝试过的许多建议:

grep "^5[0-9]{2}$" test

根本找不到任何数字!

我如何对此施加约束?

最佳答案

如果您想匹配一行中的 5xx,而不是当 5xx 作为 x5xx 的一部分出现时,

^5\d{2}$

\d = Digit

^ = beginning of line

$ = end of line

编辑:

根据问题中的其他详细信息,您在行的开头有可变数量的空格,因此,您需要以下内容:

\s*5\d{2}\s

匹配 5xx 两边的空格。

关于regex - 使用正则表达式仅匹配 5xx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12296319/

相关文章:

regex - 基于多个分隔符拆分文件

javascript - 使用 javascript 的正则表达式

java - 如何创建csr、key、c​​rt并将crt、rootca、subca导入jks?

bash - 如何从文本文件中删除部分重复项?

linux - 在字符串 linux 中查找模式

html - 如何在 HTML 标签之外匹配 RegExp

regex - Perl 正则表达式组合捕获组和第 n 个字符串

git - 如何在 git 别名中使用 bash 函数?

linux - 为什么在shell脚本中使用ls重定向只写入一个文件名

linux - Grep 查找以下划线开头和结尾的字符串