?表示匹配前面的字元0次或1次;
*表示匹配前面的字元0次或任意多次;
001、在r語言中
> sub("a?b", "", c("
aaaabxa
","***xbxa
", "
xacb
")) ## ?表示匹配前面字元0次或1次; a?b表示匹配b或者ab
[1] "
aaaxa""
***xxa""
xac"
> sub("
a*b", "", c("
aaaabxa
","***xbxa
", "
xacb
")) ## *表示匹配前面字元0次或任意多次; a*b表示匹配:b 或者 任意多次a 再加上b
[1] "xa"
"***xxa""
xac"
002、在shell中
root@pc1:/home/test2# cat a.txtaaaabxa
***xbxa
xacb
root@pc1:/home/test2# sed '
s/a?b//
'a.txt
aaaabxa
***xbxa
xacb
root@pc1:/home/test2# sed '
s/a\?b//
'a.txt ## sed中?需要轉義, ?表示匹配前面乙個字元0次或者一次
aaaxa
***xxa
xacroot@pc1:/home/test2# cat a.txt
aaaabxa
***xbxa
xacb
root@pc1:/home/test2# sed '
s/a*b//
'a.txt ## *表示匹配前面乙個字元0次或任意多次
xa***xxa
xac
正規表示式中 和 的區別
圓括號 是組,主要應用在限制多選結構的範圍 分組 捕獲文字 環視 特殊模式處理 示例 1 abc bcd cde 表示這一段是abc bcd cde三者之一均可,順序也必須一致 2 abc 表示這一組要麼一起出現,要麼不出現,出現則按此組內的順序出現 3 abc 表示找到這樣abc這樣一組,但不記錄...
關於正規表示式中 和
是正規表示式匹配字串開始位置 是正規表示式匹配字串結束位置 很多人始終沒搞清楚這是什麼意思,這裡用幾個例子看下就一目了然了。先搞清楚 匹配字串開始位置 其實就是從字串左邊第乙個字元開始匹配 1 str 2 pattern blog 因為 為特殊字元 3 str preg replace patter...
正規表示式 的區別
正規表示式的 有著不同的意思 是為了提取匹配字串的,表示式中有幾個 就有幾個相應的匹配字串 s 表示連續空格的字串 是定義匹配的字元範圍。比如 a za z0 9 表示相應位置的字元要匹配英文本元和數字。s 表示空格或者 號 一般是用來匹配的長度。比如 s表示匹配三個空格,s 1,3 表示匹配1到3...