为什么我不能匹配字符串
"1234567-1234567890"
使用给定的正则表达式
\d{7}-\d{10}
从egrep这样的外壳:
egrep \d{7}-\d{10} file
?
为什么我不能匹配字符串
"1234567-1234567890"
使用给定的正则表达式
\d{7}-\d{10}
从egrep这样的外壳:
egrep \d{7}-\d{10} file
?
egrep不识别\d数字字符类的简写,因此您需要使用 eg [0-9]。
此外,虽然在这种情况下不是绝对必要的,但引用正则表达式以防止 shell 误解是一个好习惯。因此,这样的事情应该有效:
egrep '[0-9]{7}-[0-9]{10}' file
grep, ed, sed, egrep, awk,emacs
grep列出与egrep其他正则表达式风格之间的差异为了完整性:
Egrep 实际上确实支持字符类。这些课程是:
示例(注意双括号):
egrep '[[:digit:]]{7}-[[:digit:]]{10}' file
\d如果您通过 grep “perl 正则表达式”选项,您可以使用,例如:
grep -P "\d{9}"
使用 [0-9] 代替 \d。egrep 不知道\d。
试试这个:
egrep '(\d{7}-\d{10})' file