1. 程式人生 > 其它 >正則表示式中.和*的區別

正則表示式中.和*的區別

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