[英]^[: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.