如何用Sed和正規表示式提取子字串

2021-03-04 02:13:31 字數 1069 閱讀 8465

1樓:風吹淡淡來回撞

現在有如下一串bai字元du串:

"asdfkjasldjkf"shiner"df需求:需要zhi提取出shiner子字串。

命令如下:

dao[root@localhost /]$ echo "asdfkjasldjkf\"shiner\"df" | sed 's/\(.*\)"\(.*\)"\(.

*\)/\2/g'

shiner

命令解回釋

s: 表示替換命答令

\(.*\)" : 表示第一個引號前的內容"\(.*\)":表示兩引號之間的內容

)"\(.*\):表示引號後的內容

\2: 表示第二對括號裡面的內容

括號裡的表示式匹配的內容,可以用\1,\2等進行引用,第n個括號對內的內容,就用\n引用。

這個命令的意思是:

用\2代表的第二個括號的內容(shiner)去替換整個字串,這樣就得到了我們所需要的子字串了。

shell程式設計怎麼抽取匹配正規表示式的字串?

2樓:匿名使用者

a=$( expr 'helloworld20140501.txt' : '.*\([0-9]\\).*' )

echo $a

linux shell 中可以將命令的結果賦值給變數,$(命令)這種格式將返回命令執行後的結果字專

符串上面命令執行後,變屬量a的值是20140501a=`echo 'helloworld20140501.txt'|sed 's/.*\([0-9]\\).*/\1/'`

這個命令作用也是一樣,變數a被賦值為20140501

如何用sed和正規表示式提取子字串

3樓:好程式設計師

([0-9-]+) ([0-9:]+)你要的結果分別在$1和$2裡面, 常用正規表示式 匹配中文回字元的正規表示式: [u4e00-u9fa5] 評註:

答匹配中文還真是個頭疼的事,有了這個表示式就好辦了 匹配雙位元組字元(包括漢字在內):[^x00-xff] 評註:可以用來計算字串的

正規表示式 小問題!!正規表示式,求解答

也可當否用 比如 1 8 就是表示不是1 8的所有字元。d 和 0 9 匹配數字。匹配除換行符以外的任意字元。w 匹配字母或數字或下劃線或漢字。s 匹配任意的空白符。b 匹配單詞的開始或結束。匹配字串的開始。匹配字串的結束。重複零次或更多次 如 1 d 匹配1開頭數字 包括1 重複一次或更多次 如 ...

正規表示式ddd是什麼意思,這個正規表示式什麼意思dd

先說bai通俗的結論 匹du配數。非負數,整 zhi數和小數都可以,比如 123 dao12.56這樣的 d 是匹專配一個數字 屬 0到9 d 前面多了第一個 是為了在程式中轉義第二個 這個你可以忽略 表示 1個或多個 組合起來 d 就表示多個數字,形如 12 44 6763 匹配一個小數點 d d...

正規表示式中w和w有區別麼,正規表示式中 w 和 是什麼意思?

你理解錯了吧.w前面加了反斜槓,是 w,與 a za z0 9 等價也就是包含下劃線以下的所有字母和數字 而後面的加號,則是匹配緊跟其前面那個字元的 一次或多次中括號表示匹配其中任意字元 所以,你說的 w.就是一或多次匹配 任何數字,字母,下劃線,斜槓,還有英文的句號 一個點 所以,那個表示式可以匹...