我一直在思考這個問題一段時間,我似乎無法找到解決方案。解析未知長度Unicode名稱
我正在使用pyparsing來解析包含事件摘要的文本文件。每個文本文件都包含許多事件。每個事件的標題信息幾行後,列出多個人和數據對他們來說,格式如下:
字整數:用戶名(整數字字字)
- 字是靜態的並且總是相同
- 整數是任何詮釋
- 用戶名可以是任何Unicode字符,包括符號,並能還包括空格
我似乎無法建立一個可以處理所有這些可能性的語法。解析奇怪的unicode字符以及空格/符號時,它會陷入困境。下面的例子3是難倒我的東西。
實例:
你好1:-fred,123(100你好堆棧溢出)
你好2:我的名字是布倫特(250你好堆棧溢出)
你好3:AAA + OOO (0你好堆棧溢出)
任何人有任何提示嗎?
編輯:
感謝您的響應。這就像一種魅力,但是當我轉到我的文本文件的下一部分時,我又陷入了同樣的問題。不知道我是否應該開始一個新的問題,或只是添加到這一個。
我現在試圖解析以下多種線路:
用戶名:動作名稱動作細節 用戶名行動
例子:
brent morrow: add 10 to 20
brent:morrow: walks
äää + óóó: stands
brent morrow has returned
所有動作的名稱和行動細節是靜態的和已知的。
因此,我遇到了一個問題,我無法跳過超出用戶名的文本,因爲它可能是許多不同操作之一。它最終只是打印整個文本文件(或至少它的一個重要部分)。
我絕對難住。基本上,我試圖找出一種方法來向前看,找到如下:
冒號+動作名稱+動作細節
或
空格+行動
...和然後在所有的字符(用戶名)之前。但是action-name/action-details/action可以是預定義操作列表中的許多操作之一。負面看起來,〜,看起來很有希望,但我似乎無法找到解決方案來接受用戶名的所有Unicode字符。
正在解析的文本文件來自我的控制之外的第三方,因此無法找到更具體地構造源文件的方式。
感謝您的幫助。這就像一個魅力。感謝您指出結果名稱,這將非常有用。我將在實施此解決方案後立即添加另一個我遇到的問題。不知道我是否應該打開另一個問題,但它與這個問題有關,所以我現在就留在這裏。 –