我已经搜索过,但并未完全找到适合我的情况。基本上,我试图分裂以下行:在Python中解析和切割长字符串
(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-或等等。
(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个字符:如果是超过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)
这是一个很好的开始!我会如何'优雅地'剥下CU! (或者就此而言,任何字母数字和随附的条件)并将其附加到每个新行? – Carlos 2012-02-28 22:09:35
@ mastashake57 - 对不起,看起来我错过了你的问题的元素,现在正在编辑。 – 2012-02-28 22:16:46
谢谢F.J.,你在帮我。顺便说一句,完全欣赏故障。 – Carlos 2012-02-28 22:21:40