[問題] 請問如何排除星號

看板RegExp (正規表示式 Regular Expression)作者 (C語言)時間14年前 (2011/06/17 00:22), 編輯推噓5(5014)
留言19則, 8人參與, 最新討論串1/1
想請問一下這是我現有的表示式, 使用 perl if ($line_data =~ m/\[(.*)\]$/) { ... } 檔案格式是這樣 Notepad - [I:\_source\Win_vc\Test.cpp*] 我希望抓出 [] 內的東西除了星號 [註記一下: 星號不一定會存在] 想不透 QQ" 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.57.131.154

06/17 00:39, , 1F
抓出來再把星號拿掉?
06/17 00:39, 1F

06/17 00:42, , 2F
/\[(.*)\*\]$/ 這樣就好啦...要 * 這個字就用 \* 就好
06/17 00:42, 2F

06/17 00:42, , 3F
如果星號不固定出現就再黏個 ? 上去就好
06/17 00:42, 3F

06/17 00:43, , 4F
如果星號只會在那位置出現,可用 /\[([^*]*)(?=\**\])/
06/17 00:43, 4F

06/17 00:44, , 5F
如果位置不固定..我想不出一次解XDD
06/17 00:44, 5F

06/17 00:48, , 6F
抱歉沒講清楚 那個星號有可能存在 有可能不存在
06/17 00:48, 6F
※ 編輯: clanguage 來自: 61.57.131.154 (06/17 00:49)

06/17 00:50, , 7F
所以 LPH大的方法可能不行應該他會抓到整個符合才行對吧
06/17 00:50, 7F

06/17 00:50, , 8F
這個 case 位置是固定的
06/17 00:50, 8F

06/17 20:13, , 9F
/\[([^\*\]]+)/
06/17 20:13, 9F

06/17 22:43, , 10F
/\[([^\*]+)\]/
06/17 22:43, 10F

06/18 17:10, , 11F
/\[(.+[^*])\*?\]/
06/18 17:10, 11F

06/19 21:40, , 12F
謝謝各位 我有另外用假日 study 了一下 感謝
06/19 21:40, 12F

06/20 23:22, , 13F
呃 我不是有說不固定出現就再黏個 ? 上去嗎 orz
06/20 23:22, 13F

06/22 15:00, , 14F
supra126兄,你的方式如果有*會抓不到喔
06/22 15:00, 14F

06/25 16:41, , 15F
windows or linux都不允許檔名有*,應該沒關係
06/25 16:41, 15F

06/25 16:42, , 16F
當然,這是假設原po的資料來源
06/25 16:42, 16F

06/26 06:18, , 17F
[註記一下: 星號不一定會存在] 代表*可能會存在
06/26 06:18, 17F

06/26 06:20, , 18F
這似乎不是很"精確"的做法
06/26 06:20, 18F

06/30 03:03, , 19F
您對了,那就是假設錯誤
06/30 03:03, 19F
文章代碼(AID): #1D-Ysg34 (RegExp)
文章代碼(AID): #1D-Ysg34 (RegExp)