|
我遇到个正则超时问题如下:
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)
程序运行到match一直出不来卡死了,哪位大神能帮忙看看,优化正则或者做超时处理都可以,我完全卡住了,解决不了。这个匹配是在循环里,我希望的效果是如果匹配超时就跳过进入下一条的匹配。 |
|