我從一個XML文件中的節點名稱包含一個命名空間:正則表達式:大括號後得到的一切
從這個我想修剪的命名空間,這在花括號裏。所以結果應該只是節點名稱。可能是將花括號中的所有內容與RegEx匹配,然後將其從字符串中刪除。 或直接匹配大括號後的內容。但我太愚蠢了,以正確的正則表達式...
感謝您的任何幫助!
PS:我使用Python 3編碼。
我從一個XML文件中的節點名稱包含一個命名空間:正則表達式:大括號後得到的一切
從這個我想修剪的命名空間,這在花括號裏。所以結果應該只是節點名稱。可能是將花括號中的所有內容與RegEx匹配,然後將其從字符串中刪除。 或直接匹配大括號後的內容。但我太愚蠢了,以正確的正則表達式...
感謝您的任何幫助!
PS:我使用Python 3編碼。
可以不用正則表達式簡單,如果你認爲做你想後, 「}」 一切:
隨着rsplit
- 採取什麼樣的後「 }「
s.rsplit("}")[-1]
更有效地rsplit
- 分裂最多一次
s.rsplit("}", 1)[-1]
更有效地與rfind
,不分配的前綴字符串我們丟掉
s[s.rfind("}")+1:]
工程就像一個魅力。 – Matthias
這樣子? Demo。
(?P<curlyStuff>\{[^}]+\})?(?P<nodeName>\w+)\b
這樣做的工作。謝謝!只需要把它放到Python代碼中。還有一件事:如果名稱空間(花括號)不存在,該怎麼辦?然後你正則表達式找不到任何東西。 – Matthias
已更新,以使curlyStuff可選。看演示。 – linden2015
你好,你嘗試過什麼? – Bernhard
're.sub(「{。*?}」,「」,nodeName)' –
['{[^}] +}(。*)'](https://regex101.com/r/vq8k3E/2 )?.. – Maroun