[問題] 抓引號中間的值要怎麼 parse ?

看板RegExp (正規表示式 Regular Expression)作者 (free)時間10年前 (2014/08/27 15:40), 10年前編輯推噓2(207)
留言9則, 4人參與, 最新討論串1/1
假設如果有一個JSON格式輸出如下,想要parse結果 取Name1後面的value,結果Momo 應該怎麼做比較好? 用shell script { "Name1": "Momo", "Name2": "Test", "Name3": "Angel", "Name4": "Peter", "Name5": "John" } 有嘗試過 \w+(") 或 awk -F":" '{ print $2 }' 但是不知道下一步該怎麼做 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.129.153.179 ※ 文章網址: http://www.ptt.cc/bbs/RegExp/M.1409125258.A.826.html

08/27 15:58, , 1F
sed s/"Name[0-9]": "\1",/\1/p 這樣?
08/27 15:58, 1F
root@pc ~ $ cat reg.txt| sed s/"Name[0-9]": "\1",/\1/p sed: -e expression #1, char 12: unterminated `s' command 跟Name 1234 無關,那個只是隨便舉例XD 總之就是要抓某個特定名稱後面的value ※ 編輯: freeself (220.129.153.179), 08/27/2014 17:31:56

08/27 21:57, , 2F
".*":\s"(.+)" 配到之後取$1
08/27 21:57, 2F

08/29 15:52, , 3F
若是json建議你用parser http://stedolan.github.io/jq/
08/29 15:52, 3F

09/01 05:39, , 4F
regex就是看你的pattern來決定要怎麼設計,如果跟
09/01 05:39, 4F

09/01 05:39, , 5F
Name1234無關,那你在問題就要先說清楚
09/01 05:39, 5F

09/01 05:40, , 6F
不過我給的其實也打錯了就是orz
09/01 05:40, 6F

12/19 16:11, , 7F
土法煉鋼: 假設文件名為test ....
12/19 16:11, 7F

12/19 16:11, , 8F
awk -F":" '{ print $2 }' test | sed 's/",//g' |
12/19 16:11, 8F

12/19 16:12, , 9F
grep -v "^$" | sed 's/\ //g'
12/19 16:12, 9F
文章代碼(AID): #1J_OkAWc (RegExp)
文章代碼(AID): #1J_OkAWc (RegExp)