我从一个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