Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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 - Fatal编程技术网

Python正则表达式问题

Python正则表达式问题,python,regex,Python,Regex,我有一个结束标签,后面是回车换行符(x0Dx0A),后面是一个或多个标签(x09),后面是一个新的开始标签 大概是这样的: </tag1>x0Dx0Ax09x09x09<tag2> or </tag1>x0Dx0Ax09x09x09x09x09<tag2> x0Dx0Ax09x09x09或x0dx0ax09x09x09x09 我应该用什么Python正则表达式来替换它 </tag1><tag3>content</t

我有一个结束标签,后面是回车换行符(x0Dx0A),后面是一个或多个标签(x09),后面是一个新的开始标签

大概是这样的:

</tag1>x0Dx0Ax09x09x09<tag2> or </tag1>x0Dx0Ax09x09x09x09x09<tag2>
x0Dx0Ax09x09x09或x0dx0ax09x09x09x09
我应该用什么Python正则表达式来替换它

</tag1><tag3>content</tag3><tag2>
内容

提前感谢。

以下是您所需的代码:

>>> import re
>>> sample = '</tag1>\r\n\t\t\t\t<tag2>'
>>> sample
'</tag1>\r\n\t\t\t\t<tag2>'
>>> pattern = '(</tag1>)\r\n\t+(<tag2>)'
>>> replacement = r'\1<tag3>content</tag3>\2'
>>> re.sub(pattern, replacement, sample)
'</tag1><tag3>content</tag3><tag2>'
>>>
>>重新导入
>>>样本='\r\n\t\t\t\t'
>>>样品
“\r\n\t\t\t\t”
>>>模式='()\r\n\t+()'
>>>替换=r'\1内容\2'
>>>关于子项(模式、替换、样本)
“内容”
>>>
请注意,
\r\n\t+
可能有点过于具体,尤其是在您无法控制输入的生成的情况下。最好采用更通用的
\s*
(零个或更多空白字符)


一般来说,使用正则表达式解析XML和HTML不是一个好主意。。。虽然在这里很难看到失败模式(除了纠正模式时的基本错误),但您可能希望告诉我们潜在的问题是什么,以防其他解决方案更好。

自己解析XML?这不是个好主意。很明显,在将代码移植到Python3时会遇到额外的问题。尝试使用现有的xml解析解决方案怎么样?