Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正则表达式:在花括号后获得所有内容_Python_Regex_Trim - Fatal编程技术网

Python 正则表达式:在花括号后获得所有内容

Python 正则表达式:在花括号后获得所有内容,python,regex,trim,Python,Regex,Trim,我从包含命名空间的XML文件中获取节点名称: {}nodeName 从这里,我想修剪名称空间,它用大括号括起来。因此,结果应仅为节点名称。可以是将大括号中的所有内容与正则表达式匹配,然后将其从字符串中删除或直接匹配大括号后的内容。但我太蠢了,连正则表达式都做不好 谢谢你的帮助 PS:我正在用Python 3编写代码。像这样 (?P\{[^}]+\})?(?P\w+)\b 像这样 (?P\{[^}]+\})?(?P\w+)\b 试试这个: s = '{http://datex2.eu/schema

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

{}nodeName

从这里,我想修剪名称空间,它用大括号括起来。因此,结果应仅为节点名称。可以是将大括号中的所有内容与正则表达式匹配,然后将其从字符串中删除或直接匹配大括号后的内容。但我太蠢了,连正则表达式都做不好

谢谢你的帮助

PS:我正在用Python 3编写代码。

像这样

(?P\{[^}]+\})?(?P\w+)\b
像这样

(?P\{[^}]+\})?(?P\w+)\b
试试这个:

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

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

如果您假定需要“}”之后的所有内容,则可以不使用正则表达式:

  • 使用
    rsplit
    -取“}”后面的内容

    s.rsplit(“}”)[-1]

  • 使用
    rsplit
    -最多拆分一次,效率更高

    s.rsplit(“}”,1)[-1]

  • 使用
    rfind
    更高效,不分配前缀为我们正在丢弃的字符串

    s[s.rfind(“}”)+1:


  • 如果您假定需要“}”之后的所有内容,则可以不使用正则表达式:

  • 使用
    rsplit
    -取“}”后面的内容

    s.rsplit(“}”)[-1]

  • 使用
    rsplit
    -最多拆分一次,效率更高

    s.rsplit(“}”,1)[-1]

  • 使用
    rfind
    更高效,不分配前缀为我们正在丢弃的字符串

    s[s.rfind(“}”)+1:


  • 您好,您尝试了什么?
    re.sub(“{.*?},”,nodeName)
    ?…问题。你添加了大括号还是它们确实存在于节点名中?@MarounMaroun你的第一个正则表达式找到了所有内容,第一部分找到了带大括号的内容。有没有修改只查找节点名?您好,您尝试了什么?
    re.sub(“{.*?},”,nodeName)
    ?…问题。你添加了大括号还是它们确实存在于节点名中?@MarounMaroun你的第一个正则表达式找到了所有内容,第一部分找到了带大括号的内容。对节点名称进行任何修改都可以完成此任务。谢谢只需要把它放到Python代码中。还有一件事:如果名称空间(大括号)不存在怎么办。然后你的正则表达式找不到任何东西。更新使curlyStuff成为可选的。请看演示。这就可以了。谢谢只需要把它放到Python代码中。还有一件事:如果名称空间(大括号)不存在怎么办。然后你的正则表达式找不到任何东西。更新使curlyStuff成为可选的。参见演示。请记住,
    *
    是贪婪的。全文是什么?“nodeName”后面是什么符号?如果strting只包含一对花括号-没关系。请记住
    *
    是贪婪的。全文是什么?“nodeName”后面是什么符号?如果strting只包含一对花括号-没关系。就像一个符咒。就像一个符咒。