Python 使用正则表达式从xml标记中删除select字符
我正在尝试从xml标记中只删除select字符+后面的任何数字+继续:。。例如:Python 使用正则表达式从xml标记中删除select字符,python,regex,xml,Python,Regex,Xml,我正在尝试从xml标记中只删除select字符+后面的任何数字+继续:。。例如: 这可能是因为正则表达式。请尝试改用此正则表达式: text = re.sub('^<[a-zA-Z0-9]+:','<',open(inputfile).read()) 这项工作: 查找r]?+\s*/?> 替换 可读版本: < (?: (?: ( /? ) # (1) \w+ [1-
这可能是因为正则表达式。请尝试改用此正则表达式:
text = re.sub('^<[a-zA-Z0-9]+:','<',open(inputfile).read())
这项工作:
查找r]?+\s*/?>
替换
可读版本:
<
(?:
(?:
( /? ) # (1)
\w+ [1-9] :
( \w+ \s* /? ) # (2)
)
| (?:
\w+ [1-9] :
( # (3 start)
\w+ \s+
(?: " [\S\s]*? " | ' [\S\s]*? ' | [^>]? )+
\s* /?
) # (3 end)
)
)
>
Regex:?:?/[a-zA-Z]+[0-9]:但是,这是假设您只想搜索一个数字:停止尝试用正则表达式解析XML/HTML,而是使用DOM解析器。选择字符称为名称空间。或者一个允许在转储名称空间之前终止名称空间的解析器again@Matt.G这实际上几乎完美地发挥了作用。。但是,带有/的结束标记不会被删除,除非我将其添加到节中,例如:?有没有办法让它删除/ns。。。是否存在?
<
(?:
(?:
( /? ) # (1)
\w+ [1-9] :
( \w+ \s* /? ) # (2)
)
| (?:
\w+ [1-9] :
( # (3 start)
\w+ \s+
(?: " [\S\s]*? " | ' [\S\s]*? ' | [^>]? )+
\s* /?
) # (3 end)
)
)
>