* 表示匹配前一个字符0次或者多次;
?表示匹配前一个字符0次或者1次, 且只在扩展正则表达式中生效。
001、
root@DESKTOP-IDT9S0E:/home/test# echo "ik" | grep "ie?k" root@DESKTOP-IDT9S0E:/home/test# echo "ik" | sed -n '/ie*k/p' ## *表示匹配0次或者多次 ik root@DESKTOP-IDT9S0E:/home/test# echo "ik" | grep "ie*k" ## *表示匹配0次或者多次 ik root@DESKTOP-IDT9S0E:/home/test# echo "ik" | grep "ie?k" root@DESKTOP-IDT9S0E:/home/test# echo "ik" | grep -E "ie?k" ## ?表示匹配0次或者1次,且扩展正则 ik
002、
root@DESKTOP-IDT9S0E:/home/test# echo "ieeeek" | sed -n '/ie*k/p' ## *号表示匹配0次或者多次 ieeeek root@DESKTOP-IDT9S0E:/home/test# echo "ieeeek" | grep "ie*k" ieeeek root@DESKTOP-IDT9S0E:/home/test# echo "ieeeek" | grep -E "ie?k" ## ?表示匹配0次或者1次 root@DESKTOP-IDT9S0E:/home/test# echo "ik" | grep -E "ie?k" ik root@DESKTOP-IDT9S0E:/home/test# echo "iek" | grep -E "ie?k" iek root@DESKTOP-IDT9S0E:/home/test# echo "ieek" | grep -E "ie?k"
003、
root@DESKTOP-IDT9S0E:/home/test# echo "baeeaeeat" | sed -n '/b[ae]*t/p' baeeaeeat root@DESKTOP-IDT9S0E:/home/test# echo "baakeeet" | sed -n '/b[ae]*t/p'
只要 a 和 e 字符以任何组合形式出现在 b 和 t 字符之间(就算完全不出现也行),模式就能够匹配。如果出现了字符组之外的字符,该模式匹配就会不成立。
参考: https://mp.weixin.qq.com/s?__biz=MzUxMjEyNDgyNw==&mid=2247513225&idx=1&sn=0b4119aa05476f6f25a1603dd0b46269&chksm=f96bc67dce1c4f6bd989697ea7d0df177e9e49377b3e5839e6902f5f0c7a9bd5de4c3f9d0a67&mpshare=1&scene=23&srcid=0510LQZpQrkaE3X3MuCgBeUT&sharer_sharetime=1683650310883&sharer_shareid=50b75c6a886e09824b582fb782a7678b#rd
标签:IDT9S0E,正则表达式,DESKTOP,linux,test,home,echo,root From: https://www.cnblogs.com/liujiaxin2018/p/17389998.html