我正在嘗試從帶有 [NAME] 和 [PLACE] 等附加字符組的字串中獲取所有中文句子。
我有這個字串
<DisplayName>凡人戰爭</DisplayName>
<Desc>[NAME]趕到[PLACE],發現戰火正燃,此地百姓飽受戰爭之苦。</Desc>
<Display>勸停戰爭</Display>
<OKResult><![CDATA[me:AddMsg(XT("[NAME]以仙法攝走兩軍首領,一番勸戒,迫使他們停止了戰爭 ...
我想找到
凡人戰爭
[NAME]趕到[PLACE],發現戰火正燃,此地百姓飽受戰爭之苦
[NAME]以仙法攝走兩軍首領,一番勸戒,迫使他們停止了戰爭,消弭了這場禍事
此舉手段溫和,雖無人知曉,但卻順應天道,[NAME]獲得了一些功德
我知道中文字符正則運算式是[\u4e00-\u9fff\uFF0C]
和組字符(\u005BNAME\u005D),(\u005BPLACE\u005D)但如何結合它。
我嘗試用python撰寫的這種方式
Array_of_words = re.findall(r'[\u4e00-\u9fff\uFF0C(\u005BNAME\u005D)(\u005BPLACE\u005D)] ', text)
但另外標記單個字母和括號是這樣的:
['N', 'N', '凡人戰爭', 'N', '[NAME]趕到[PLACE],發現戰火正燃,此地百姓飽受戰爭之苦', '勸停戰爭', '[C', 'A', 'A[', 'A', 'M', '(', '(', '[NAME]以仙法攝走兩軍首領,一番勸戒,迫使他們停止了戰爭,消弭了這場禍事', '此舉手段溫和,雖無人知曉,但卻順應天道,[NAME]獲得了一些功德', '))', 'A', 'P', '(', '(', '))', '()', ']]']
uj5u.com熱心網友回復:
您可以使用
re.findall(r'(?:\[(?:PLACE|NAME)]|[\u4e00-\u9fff\uFF0C]) ', text)
細節
(?:- 非捕獲組的開始:\[(?:PLACE|NAME)]-[,那么無論PLACE或NAME然后]|- 或者[\u4e00-\u9fff\uFF0C]- 你的中國字符模式
)- 組結束,匹配一個或多個事件。
要匹配方括號內的任何大寫 ASCII 字母,請替換\[(?:PLACE|NAME)]為\[[A-Z] ].
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/351518.html
上一篇:使用正則運算式附加到非空行的末尾
下一篇:R正則運算式,單獨的列
