正規表示式中?和 的區別

2022-10-11 04:27:15 字數 1021 閱讀 7011

?表示匹配前面的字元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.txt

aaaabxa

***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...