0
我有一個非常大的XML文件中的所有節點,每個主節點中有一個子節點查找包含標點符號
<term>text, text</term>
一些子節點有標點符號如上圖所示,但標點符號未知。我需要獲得這些子節點中使用的所有標點符號的列表,以便我可以直觀地檢查它們,並稍後用一個標點符號替換它們。
我試過使用正則表達式/<term>[[:punct:]]<\/term>
,但它在正則表達式測試中找不到匹配。
如何將所有在子節點中使用的標點符號複製到文本文件中?
如何用分號替換子節點中的所有標點符號?
下面是一個示例節點,每個節點中有兩處出現。
<conceptGrp><descripGrp><descrip type="subjectField">6821</descrip></descripGrp><languageGrp><language lang="DE" type="German" /><termGrp><term>Betonkanal BE;Betonkanal breites Ei</term><descripGrp><descrip type="termType">phraseologicalUnit</descrip></descripGrp><descripGrp><descrip type="reliabilityCode">2</descrip></descripGrp></termGrp></languageGrp><languageGrp><language lang="EN" type="English" /><termGrp><term>flattened egg-shaped concrete sewer</term><descripGrp><descrip type="termType">phraseologicalUnit</descrip></descripGrp><descripGrp><descrip type="reliabilityCode">2</descrip></descripGrp></termGrp></languageGrp></conceptGrp>
謝謝安德魯。你的正則表達式選擇所有的標點符號,如果它們後面跟着一個空格,否則它會跳過它們。我期待管道符號沒有任何空間的空間,這些也沒有拿起。我想更好的描述可能是不是空格,字母或數字的字符。我和[[:punct:]]一起玩過,但無法讓它工作。 – BenS
@BenS如果你看看最後一個元素的最後一個字符,你會看到它是一個句號,它後面跟着一個空格(或任何其他字符),它被正則表達式拾取。您可以使用'[\ p {P} |]'來包含管道字符。請編輯您的問題以包含我們需要知道的所有內容,以便我們提供幫助。 –
對不起,延遲迴答,但我在路上。我有一個很大的xml文件,它代表了一個雙語詞彙表,並且是來自各種來源的許多其他詞彙表的聚合。在術語節點中,可以用「特殊」字符分隔同義詞。所有這些分隔符都是未知的,但可以是逗號,分號,冒號,管道或其他字符。我首先需要找出分隔符已被使用,然後用分號替換。你的正則表達式的確如你所說的那樣工作,我剛剛在一個測試器中嘗試過,但它沒有。 – BenS