我今天早些時候提出了一個關於同樣問題的問題,但是因爲解決方案是切換庫,我現在有一個與其他庫的問題,我想打開另一個問題...希望沒關係。PyParsing - nestedExpr和匹配標記
所以我wan't以匹配下面的標記:
<text link="no">
...
</text>
我不關心裏面有什麼文字是什麼matherrs是文本具有鏈接屬性。
現在,我使用pyparsing如下:
def content_must_not_be_empty_string(tokens):
if tokens[0]=="":
raise ParseException("content cannot be empty")
text_start = Regex('<text[^<]*>')
text_no_start = Regex('<text[^<]*link="no"[^<]*>')
text_no_end = Regex('</text>[ \t\n\r\xa0]*')
text_no_content = SkipTo(text_no_start | text_no_end | text_start)
text_no_content.setParseAction(content_must_not_be_empty_string)
text_no = nestedExpr(text_no_start,text_no_end,text_no_content)
text_no.setParseAction(somemethod)
起初,整個事情循環,因爲空標記的,這就是爲什麼我添加content_must_not_be_empty。
現在它不再循環,但是somemethod也不會執行。
幫助將不勝感激。
您的樣品不顯示任何嵌套,是標籤真的嵌套,或者你只是使用nestedExpr實施的標籤打開/關閉? –
PaulMcG
在文本中有一個嵌套,很難說這是多少,這就是爲什麼我儘量保持一般 – pypat