hi,你好。在你的博客上看到一篇关于给正则匹配加超时处理的文章,刚好遇到一个正则匹配超时的问题,先将你网页上的例子试着跑,结果报错“ signal.signal(signal.SIGALRM, timed_out)
AttributeError: 'module' object has no attribute 'SIGALRM'”
我的python是3.3.2版本,用的windows系统,为什么会有这样的错误。
我遇到的正则超时如下:
reg = re.compile(r"""^
\s{0,5}(\S+?(\s?\S+)(?!SOLE\s*\d+))\s{2,} #1 grab NAME OF ISSUER
(\S+(\s?\S+|\s+\d?[\/.]\S+))\s+ #3 grab TITLE OF CLASS
(?!\D{7,12}\s|\d+[.,]+[\d.,]*|USD[\d.,]{1,4})([^\$-(),\/\s]{7,12})\s+ #5 grab CUSIP (12 could be ISIN)
[,\$\sUSD](-*[\d,.]+)\s+ #6 grab VALUE.
[,\$\s](-*[\d,.]+)\s* #7 SHARES or PRN AMOUNT.
(SH|PRN|SHS)\s* #8 grab 'SH' or 'PRN'
(CALL|PUT|COM|C\s|P\s) #9 grab CALL or PUT. If empty, return whitespace.
$""", re.IGNORECASE|re.X)
line = 'CRESCENDO PHARMACEUTICALS CO COM 225637107 25 SH DEF/OTH 01 25'
Oct 21, 2013 07:30:26 PM
ニャーニャーニャー
Oct 20, 2013 08:35:44 AM
非常感谢,我得把它记下来
Oct 20, 2013 01:02:03 AM
「明白的错误」->「明显的错误」。
疲劳的结果就是错误率的增加。
Oct 20, 2013 01:01:17 AM
偶尔我也会研究某个问题到比较晚,比如今天。
如果你经常在不合适的时间或者地方想到一个问题的思路,那么通常说明你在想当时不该想的事情。尽量避免这种情况。实在是灵感来了的时候可以拿手机或者纸笔记录。
一般来说,对解决某个问题的时间要有预期,以此来判断是否着手做它。如果偏离预期太远,那么就暂时放弃。中间的成果可以记录下来。如果你在一段时间之内没有任何进展,那么也要停下来——因为你很可能走进了某个死胡同,犯了某个明白的错误,或者问题根本是无解的。
Oct 19, 2013 06:24:47 PM
不过还是要谢谢你,因为你很有耐心,另外我怎么感觉你生活好像特别有规律,而我有时候因为一个程序出不来,调试总是出错时,结果总是熬夜过点,导致第二天上课头脑发蒙,没精神,但是一坐在电脑前就精神了,即使非常非常累,头非常非常痛,也能挺过来,但是除此之外就什么事都不能集中精力了,我感觉我的生物钟严重错乱了,另外我学的是电气工程及其自动化专业的,可我却热衷于程序,我现在面临着考研,我希望把精力放在专业学习上,所以想向你取取经,先把作息调整过来,然后想问一下,当你因为程序没出来,但后来你突然想到了一个地方可能就是问题所在时,你特别想要解决这个问题时,但此时你并不合适解决,你一般怎么办的,我之前总是在上课或者晚上睡觉时,因为突然想到一个可能能解决问题的好点,而会满脑子都想立刻解决掉,导致上课没心思听课,或者晚上通宵睡不着.你应该是过来人了,所以在次求教了:)
Oct 19, 2013 10:41:37 AM
我不会 Windows 编程啊喵……
Oct 19, 2013 12:00:49 AM
博主,请问在windows下cmd是如何实现关闭dos窗口后,里面运行的程序也被强制退出的?由于之前我没有找到windows下的vimshell,所以后来自己写了一个dll,能够通过管道和后台的cmd交互,而且速度感觉就像在cmd里一样快,但是现在还有一个问题就是,如果我强制退出后台cmd进程,那么在里面运行的子程序不会被杀死,而真正的cmd在退出后,里面的进程也会被杀死
Oct 17, 2013 09:50:53 PM
Update: vim 7.4.35 里把 netrw 插件的源文件替换回 7.3 里面的,恢复正常,没有乱码了。粗看 netrw 的脚本,里面好像是通过 system() 调用 ls 获取目录内容。想不出是哪里的问题。
Oct 16, 2013 11:05:39 PM
你还是放弃用这么大的正则,一步步解析字符串吧。
Oct 16, 2013 10:57:39 PM
因为你用的 Windows 系统。SIGALRM 信号是类 Unix 上的。
你这个正则好复杂……
Oct 16, 2013 09:54:32 PM
hi,你好。在你的博客上看到一篇关于给正则匹配加超时处理的文章,刚好遇到一个正则匹配超时的问题,先将你网页上的例子试着跑,结果报错“ signal.signal(signal.SIGALRM, timed_out)
AttributeError: 'module' object has no attribute 'SIGALRM'”
我的python是3.3.2版本,用的windows系统,为什么会有这样的错误。
我遇到的正则超时如下:
reg = re.compile(r"""^
\s{0,5}(\S+?(\s?\S+)(?!SOLE\s*\d+))\s{2,} #1 grab NAME OF ISSUER
(\S+(\s?\S+|\s+\d?[\/.]\S+))\s+ #3 grab TITLE OF CLASS
(?!\D{7,12}\s|\d+[.,]+[\d.,]*|USD[\d.,]{1,4})([^\$-(),\/\s]{7,12})\s+ #5 grab CUSIP (12 could be ISIN)
[,\$\sUSD](-*[\d,.]+)\s+ #6 grab VALUE.
[,\$\s](-*[\d,.]+)\s* #7 SHARES or PRN AMOUNT.
(SH|PRN|SHS)\s* #8 grab 'SH' or 'PRN'
(CALL|PUT|COM|C\s|P\s) #9 grab CALL or PUT. If empty, return whitespace.
$""", re.IGNORECASE|re.X)
line = 'CRESCENDO PHARMACEUTICALS CO COM 225637107 25 SH DEF/OTH 01 25'
result = reg.match(line)
能麻烦帮我看看怎么解决吗,优化正则或者做超时处理都可以,我完全卡住了,解决不了。这个匹配是在循环里,我希望的效果是如果匹配超时就跳过进入下一条的匹配。
提前谢谢了^_^
Oct 16, 2013 09:53:56 PM
combine the world
Oct 12, 2013 01:59:51 PM
cygwin用过,感觉怪怪的,我指的是专业课的软件,比如AutoCAD,Multisim,Proteus,spss,等等,当然了,matlab有linux版,这个我倒是装了
Oct 10, 2013 07:00:58 PM
喵喵
Oct 10, 2013 06:00:47 PM
喵?
Oct 10, 2013 04:31:03 PM
哇,仙子啊
Oct 10, 2013 02:07:56 PM
试试 mintty + Cygwin?
你需要用的什么软件没有 Linux 版呢?
Oct 10, 2013 01:29:56 PM
评论别人好不好,好像确实不对.sorry.但是,我得重申一次,我觉得emacs有优点,但我从来没有喜欢用它,我热爱Vim.也不喜欢IDE,但是你懂的,linux的终端很好,我可以在终端用vim.但是,windows下的cmd太差劲了,而且vim太难看,不好用,反而gvim好用,客观的说,比我以前在ubuntu下的gvim显示要好,所以我希望不再看见cmd,而希望把gvim当成终端.然而学校永远是经典的xp,有些软件又没有linux版,其次我还不怎么喜欢用虚拟机,所以一心想把它们整合在一起,在搜索无果后,才决定自己写的,可是发现windows API,那叫一个复杂难用,参数一大堆,难怪windows不好改写,难怪windows内核不如linux,但是现在我没有时间在弄这个了,虽然对vim的这个功能没有而很遗憾,但还是算了吧,仅仅把他看成是编辑器就行了,我还是多学学专业课值得一些
Oct 10, 2013 12:52:40 AM
很轻易地评判别人的好坏,可是接受不了一个很中肯的建议。热血愤青的困境。祝发明早日成功。
Oct 10, 2013 12:29:18 AM
哪里,只是从你的角度出发而已。明明 vim 里早就有的东西,Conque 有乱码你不用,要自己重写。代码有现成的交互机制你也不用,想自己用 lua 搞发明。有热血是好事,但没必要让 vim 躺枪,这样对别人不公平。
我也只是提一个很中肯的建议而已,既然如你说的,vim 不如 emacs,那不换 emacs 还等什么。你哪里看出我生气了。记住不要盲目脑补,那样叫做愤青。
希望你能找到一款你觉得行的东西,我说的不是 emacs。