我已經搜索過,但並未完全找到適合我的情況。基本上,我試圖分裂以下行:在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