【发布时间】:2012-02-28 21:57:41
【问题描述】:
我已经搜索过,但没有找到适合我的情况的内容。基本上,我正在尝试拆分以下行:
(CU!DIVD:WEXP:DIVD-:DIVD+:RWEXP:RDIVD:RECL:RLOSS:MISCDI:WEXP-:INT:RGAIN:DIVOP:RRGAIN:DIVOP-:RDIVOP:RRECL:RBRECL:INT -:RRLOSS:INT +:RINT:RDIVD-:RECL-:RWXPOR:WEXPOR:MISCRE:WEXP+:RWEXP-:RBWEXP:RECL+:RRECL-:RBDIVD)
您可以将其解读为 CU 不是 DIVD 或 WEXP 或 DIV- 等等。如果超过 65 个字符,我想做的是将此行拆分为更易于管理的内容,如下所示:
(CU!DIVD:WEXP:DIVD-:DIVD+:RWEXP:RDIVD:RECL:RLOSS:MISCDI:WEXP-)
(CU!INT:RGAIN:DIVOP:RRGAIN:DIVOP-:RDIVOP:RRECL:RBRECL:INT-)
(CU!RRLOSS:INT +:RINT:RDIVD-:RECL-:RWXPOR:WEXPOR:MISCRE:WEXP+)
(CU!RWEXP-:RBWEXP:RECL+:RRECL-:RBDIVD)
它们都少于 65 个字符。这可以存储在列表中,我可以处理其余的事情。我开始使用 RegEx 来解决这个问题,但我遇到了一些麻烦。
此外,它还可以有以下条件:
- !
- >
- =
- !=
- !
- !>
到目前为止,我有这个:
def FilterParser(iteratorIn, headerIn):
listOfStrings = []
for eachItem in iteratorIn:
if len(str(eachItem.text)) > 65:
exmlLogger.error('The length of filter' + eachItem.text + ' exceeds the limit and will be dropped')
pass
else:
listOfStrings.append(rightSpaceFill(headerIn + EXUTIL.intToString(eachItem),80))
return ''.join(stringArray)
【问题讨论】:
标签: python regex string parsing