正则表达式:获取花括号后的所有内容

RegEx: get everything after curly braces

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

{http://datex2.eu/schema/2/2_0}nodeName

由此我想 trim 命名空间,它在花括号中。所以结果应该只是节点名称。可能是 将花括号 中的所有内容与正则表达式匹配,然后将它们从字符串中删除。 或者直接匹配大括号后的内容。但是我太笨了,无法正确使用 Regex ...

感谢您的帮助!

PS:我正在编码 Python 3.

像这样? Demo.

(?P<curlyStuff>\{[^}]+\})?(?P<nodeName>\w+)\b

试试这个:

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

如果您假设您想要“}”之后的所有内容,则无需正则表达式即可完成:

  1. rsplit - 取“}”之后的内容

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

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

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

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

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