获取文件的以下内容:
“52245” “528” “06156903” “52246” “530” “00584709”
什么模式可以同时匹配 52245 和 52246 但不匹配?
只能匹配这两个数字而没有别的东西:
^\"5224[56]\"$
现在,如果您正在寻找更通用的东西(例如,任何 5 位数字),您将需要类似
^\"\d{5}\"$
我假设引号 ( "
) 是文件的一部分。如果不是,则省略\"
表达式中的部分。
您想要的特定 grep 表达式是这样的:
grep -E "^\"[[:digit:]]{5}\"$" filename
或从评论中获取建议:
grep -P "^\"\d{5}\"$" filename
我已经测试了两者,它们在我的机器上工作!
^(52245|52246)$
你可以使用这个。
^"5224[56]"$
^"5224(5|6)"$
^"52{2}4[56]"$
^"(52245|52246)"$
...
You should base the regex you use on the semantic you want to express. If you are looking for two arbitrary numbers use ^"(52245|52246)"$
. If the numbers have any meaning - a type code or something like that - I would stick with ^"5224(5|6)"$
.