[問題] 正規化擷取字串

看板Perl作者 (kai)時間13年前 (2012/03/29 21:06), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串1/1
各位版上先進好,小弟是perl新手,想請教有關於正規化切片字串問題如下: my $ data='{729, 5, "c/media/movie/0012",{0x00,0x02,0x00,}}'; 假設我想使字串變為 {729, {0x00,0x02,0x00}}的話 我使正規化方法是 $data=~(s/(\d+),\s\d+,\s\"/\w+/\w+/\w+/\d+\"/$1/); 這樣寫起來蠻麻煩,而且有時候路徑長短不一,想請問版上大大有更好寫法,像是遇到 (^"xxxxx"$) 就去除雙引號內值(小弟試過蠻多次無法達成><),謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.241.60.88

03/29 21:13, , 1F
阿~我的話會用split再把不要的挑掉在join回來
03/29 21:13, 1F

03/29 21:59, , 2F
如果一定要用正規表示有辦法判斷雙引號就清除嗎?
03/29 21:59, 2F

03/30 04:41, , 3F
$data =~ s/\s*\d+\s*,\s*"[^"]+"\s*,\s*/ /g;
03/30 04:41, 3F

03/30 04:43, , 4F
假設逗號前後的空白可有可無,假設路徑資料不含雙引號
03/30 04:43, 4F

03/30 09:31, , 5F
樓上大大給的是否有少些符號呀?執行解果沒變呢@@
03/30 09:31, 5F

03/30 13:01, , 6F
已用\"[\/\w+]+\" 解決
03/30 13:01, 6F
文章代碼(AID): #1FT5vhAg (Perl)
文章代碼(AID): #1FT5vhAg (Perl)