作者kaikai75130 (kai)
看板Perl
標題[問題] 正規化擷取字串
時間Thu Mar 29 21:06:43 2012
各位版上先進好,小弟是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
1F:推 imce:阿~我的話會用split再把不要的挑掉在join回來 03/29 21:13
2F:→ kaikai75130:如果一定要用正規表示有辦法判斷雙引號就清除嗎? 03/29 21:59
3F:推 l10nel:$data =~ s/\s*\d+\s*,\s*"[^"]+"\s*,\s*/ /g; 03/30 04:41
4F:→ l10nel:假設逗號前後的空白可有可無,假設路徑資料不含雙引號 03/30 04:43
5F:→ kaikai75130:樓上大大給的是否有少些符號呀?執行解果沒變呢@@ 03/30 09:31
6F:→ kaikai75130:已用\"[\/\w+]+\" 解決 03/30 13:01