簡體   English   中英

^ [:blank:]與sed中的點不匹配

[英]^[:blank:] does not match dot in sed

我的輸入如下:

INa.aa ................... 2010年10月,此前美國業主未能償還債務

我的目標是在字母i / I開頭的每個單詞周圍加上括號。 所以我發出了一個命令:

sed 's/\<i[^[:blank:]]*\>/(&)/gi' input_data

哪個返回了這個輸出:

(INa.aa)................... 2010年10月之后(以前)美國的所有者未能償還債務

我沒有得到的是,為什么^[:blank:]*還包括INa.aa之后的點?

謝謝你的任何建議。

你使用\\> “詞尾”逃脫。 單詞邊界定義為

左邊的字符是“單詞”字符,右邊的字符是“非單詞”字符,反之亦然

手冊中 (參考\\b )。 \\>的情況下,“反之亦然”不適用。

什么是“單詞”字符?

“單詞”字符是任何字母或數字或下划線字符。

而“非字”則是其他所有。 您希望期間和空白之間的邊界匹配\\> ,但它不會:期間和空白都是非單詞字符。 單詞邊界位於最后a和第一個之間.

a之間的時間段也被字邊界所包圍,但由於沒有任何空白,所以它是匹配的一部分。

如果你想匹配下一個空白的所有內容,你可以跳過正則表達式中的\\>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM