如何编写grep正则表达式筛选首尾均为数字的密码
筛选首尾均为数字的密码的grep正则方案
没问题,这就给你搞定!针对你说的这种每行是「密码,使用用户数」的文本文件,要筛选出首尾均为数字的密码,用这条grep命令就行:
grep -E '^[0-9]([^,]*[0-9])?,' your_password_file.txt
正则规则拆解
我给你把每个部分的作用拆解开,方便你理解和调整:
^:锚定行的开头,确保我们从密码的第一个字符开始匹配[0-9]:匹配0-9的任意数字,保证密码的首字符是数字([^,]*[0-9])?:这是一个可选组(?表示匹配0次或1次):[^,]*:匹配任意数量的非逗号字符(因为逗号是密码和用户数的分隔符,这样就不会不小心匹配到用户数字段)[0-9]:匹配密码的最后一个字符,确保它也是数字
,:匹配分隔密码和用户数的逗号,保证我们只匹配完整的密码字段
特殊情况说明
- 如果你的密码可能包含单个数字(比如
5,120这种),这个正则也能匹配到——因为可选组允许0次匹配,此时首字符的数字同时也是尾字符 - 如果你习惯用基础正则而不是扩展正则,把括号转义一下就行:
grep '^[0-9]\([^,]*[0-9]\)\?,' your_password_file.txt
内容的提问来源于stack exchange,提问作者Brendan McLaughlin
相关产品推荐
相关产品推荐

