[问题] 请问如何排除星号

楼主: 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