RegEx:在大括号之后获取所有内容

时间:2017-08-13 11:55:45

标签: python regex trim

我从包含命名空间的XML文件中获取了节点名称:

  

{http://datex2.eu/schema/2/2_0}节点名称

从这里我想修剪名称空间,这是大括号。因此结果应该只是节点名称。可以将大括号中的所有内容与RegEx匹配,然后将其从字符串中删除。 直接匹配大括号后的内容。但是我真的很蠢到让Regex正确......

感谢您的帮助!

PS:我在Python 3中编码。

3 个答案:

答案 0 :(得分:2)

试试这个:

s = '{http://datex2.eu/schema/2/2_0}nodeName'
search = re.search('{.*}(.*)',s)
print (search.group(1))

答案 1 :(得分:2)

如果你假设你想要"}"之后的所有内容,那么可以在没有正则表达式的情况下完成:

  1. 使用rsplit - 在"}"

    之后采取什么措施?

    s.rsplit("}")[-1]

  2. rsplit更有效率 - 最多拆分一次

    s.rsplit("}", 1)[-1]

  3. 使用rfind提高效率,不会分配带有我们丢弃的前缀的字符串

    s[s.rfind("}")+1:]

答案 2 :(得分:1)

喜欢这个? Demo

adduser