正则表达式中.和*的区别

 

1、

.表示匹配任意字符一次;

*表示匹配前一个字符0次或任意多次;

 

001、R语言中:

> sub("a.c","",c("abcd", "sdacd", "addfcdf"))  ## .表示任意一个字符
[1] "d"       "sdacd"   "addfcdf"
> sub("a*c","",c("abcd", "sdacd", "addfcdf"))  ## *表示匹配前面一个字符0次或任意多次; a*c表示匹配:a0次或任意多次 + c
[1] "abd"    "sdd"    "addfdf"
> sub("a.*c","",c("abcd", "sdacd", "addfcdf")) ## .*表示匹配任意字符0次或任意多次; a.*c表示匹配:a + 任意字符0次多任意多次 + c;
[1] "d"   "sdd" "df"

 

002、shell中

root@PC1:/home/test2# cat a.txt
abcd
sdacd
addfcdf
root@PC1:/home/test2# sed 's/a.c//' a.txt     ## .表示任意字符一次; a.c匹配:a + 任一字符一次 + c
d
sdacd
addfcdf
root@PC1:/home/test2# cat a.txt
abcd
sdacd
addfcdf
root@PC1:/home/test2# sed 's/a*c//' a.txt     ## *表示匹配前一个字符0次或任意多次; a*c匹配:a0次或任意多次 + c
abd
sdd
addfdf
root@PC1:/home/test2# cat a.txt
abcd
sdacd
addfcdf
root@PC1:/home/test2# sed 's/a.*c//' a.txt    ## .*表示匹配一个字符0次或任意多次; a.*c匹配:a + 任意字符0次或任意多次 + c
d
sdd
df

 

posted @ 2022-05-16 16:49  小鲨鱼2018  阅读(1461)  评论(0编辑  收藏  举报