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

作者: clanguage (C語言)   2011-06-17 00:22:00
想請問一下這是我現有的表示式, 使用 perl
if ($line_data =~ m/\[(.*)\]$/) {
...
}
檔案格式是這樣
Notepad - [I:\_source\Win_vc\Test.cpp*]
我希望抓出 [] 內的東西除了星號
[註記一下: 星號不一定會存在]
想不透 QQ"
感謝
作者: bibo9901 (function(){})()   2011-06-17 00:39:00
抓出來再把星號拿掉?
作者: LPH66 (-6.2598534e+18f)   2011-06-17 00:42:00
/\[(.*)\*\]$/ 這樣就好啦...要 * 這個字就用 \* 就好如果星號不固定出現就再黏個 ? 上去就好
作者: No (you stay there)   2011-06-17 00:43:00
如果星號只會在那位置出現,可用 /\[([^*]*)(?=\**\])/如果位置不固定..我想不出一次解XDD
作者: clanguage (C語言)   2011-06-17 00:48:00
抱歉沒講清楚 那個星號有可能存在 有可能不存在所以 LPH大的方法可能不行應該他會抓到整個符合才行對吧這個 case 位置是固定的
作者: PurpleCrow (17868)   2011-06-17 20:13:00
/\[([^\*\]]+)/
作者: supra126   2011-06-17 22:43:00
/\[([^\*]+)\]/
作者: blackkaku (black)   2011-06-18 17:10:00
/\[(.+[^*])\*?\]/
作者: clanguage (C語言)   2011-06-19 21:40:00
謝謝各位 我有另外用假日 study 了一下 感謝
作者: LPH66 (-6.2598534e+18f)   2011-06-20 23:22:00
呃 我不是有說不固定出現就再黏個 ? 上去嗎 orz
作者: PurpleCrow (17868)   2011-06-22 15:00:00
supra126兄,你的方式如果有*會抓不到喔
作者: godspeedlee (妳,我可以)   2011-06-25 16:41:00
windows or linux都不允許檔名有*,應該沒關係當然,這是假設原po的資料來源
作者: PurpleCrow (17868)   2011-06-26 06:18:00
[註記一下: 星號不一定會存在] 代表*可能會存在這似乎不是很"精確"的做法
作者: godspeedlee (妳,我可以)   2011-06-30 03:03:00
您對了,那就是假設錯誤

Links booklink

Contact Us: admin [ a t ] ucptt.com