正则表达式选择与解释:
-E, --extended-regexp PATTERN 是一个可扩展的正则表达式(缩写为 ERE)
-F, --fixed-strings PATTERN 是一组由断行符分隔的定长字符串。
-G, --basic-regexp PATTERN 是一个基本正则表达式(缩写为 BRE)
-P, --perl-regexp PATTERN 是一个 Perl 正则表达式
-e, --regexp=PATTERN 用 PATTERN 来进行匹配操作
-f, --file=FILE 从 FILE 中取得 PATTERN
-i, --ignore-case 忽略大小写
-w, --word-regexp 强制 PATTERN 仅完全匹配字词
-x, --line-regexp 强制 PATTERN 仅完全匹配一行
-z, --null-data 一个 0 字节的数据行,但不是空行
验证字符串
echo '123abc' | grep -P '^(123)*abc$'
echo 'abc' | grep -E '^(123)*abc$'
验证邮箱
echo chi-noukin@qq.com | grep -E '^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$'
echo chi-n+o_u.kin@qq.com | grep -P '^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$'
####
\w 等价与 [0-9|a-z|A-Z|_]
验证IP
echo '192.168.20.98' | grep -E '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+'
echo '192.168.20.98' | grep -P '\d+\.\d+\.\d+\.\d+'
####
-E 不支持\d
验证中文
echo 'hello你好' | grep -P '[\x{4e00}-\x{9fa5}]+' --color