Python 正则表达式:在花括号后获得所有内容
我从包含命名空间的XML文件中获取节点名称: {}nodeName 从这里,我想修剪名称空间,它用大括号括起来。因此,结果应仅为节点名称。可以是将大括号中的所有内容与正则表达式匹配,然后将其从字符串中删除或直接匹配大括号后的内容。但我太蠢了,连正则表达式都做不好 谢谢你的帮助 PS:我正在用Python 3编写代码。像这样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
(?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只包含一对花括号-没关系。就像一个符咒。就像一个符咒。