正则表达式与文本处理实用指南
1. 正则表达式量词与验证
正则表达式中的量词能帮助我们更精准地匹配文本。例如,表达式^\(?[0-9]{3}\)? [0-9]{3}-[0-9]{4}$可用于验证电话号码格式。下面通过几个示例来测试这个表达式:
[me@linuxbox ~]$ echo "(555) 123-4567" | grep -E '^\(?[0-9]{3}\)? [0-9]{3}-[0-9]{4}$' (555) 123-4567 [me@linuxbox ~]$ echo "555 123-4567" | grep -E '^\(?[0-9]{3}\)? [0-9]{3}-[0-9]{4}$' 555 123-4567 [me@linuxbox ~]$ echo "5555 123-4567" | grep -E '^\(?[0-9]{3}\)? [0-9]{3}-[0-9]{4}$' [me@linuxbox ~]$从上述示例可以看出,该表达式能成功验证带或不带括号的电话号码,同时会排除格式不正确的号码。
2. 正则表达式的实际应用
2.1 使用 grep 验证电话号码列表
之前我们验证的是单个电话号码,现在来验证一个电话号码列表。可以使用以下命令生成包含 10 个电话号码的文件phonelist.txt:
[me@linuxbox ~]$ for i in {1..10