我想在python中编写一个正则表达式,在字符串中找到</td= >
并将其替换为</td>
。角括号内的字符位置可能会改变。例如:它可能是</t= d>
或</= td>
,依此类推。尖括号中的一个字符是空格。正则表达式应该找到任何这些事件并将其替换为</td>
。在How do I search and replace a pattern in text using regular expression in Python 3?上有类似的问题,但我无法弄清楚答案。怎么做?
答案 0 :(得分:0)
试试这个正则表达式
<[\/td= ]{5}>
import re
string_to_process=r'</t= d> or </= td>'
substitute_string=r'</td>'
td_regex=re.compile(r'<[\/td= ]{5}>')
td_regex.sub(substitute_string, string_to_process)
对于您在评论中提出的问题,请使用此正则表达式:
<[^>]*?t[^>]*?d[^>]*?\/[^>]*?>|<[^>]*?t[^>]*?\/[^>]*?d[^>]*?>|<[^>]*?d[^>]*?t[^>]*?\/[^>]*?>|<[^>]*?d[^>]*?\/[^>]*?t[^>]*?>|<[^>]*?\/[^>]*?t[^>]*?d[^>]*?>|<[^>]*?\/[^>]*?d[^>]*?t[^>]*?>
见这里:https://regex101.com/r/T549ej/4
import re
string_to_process=r'</t= d> or </= td>'
substitute_string=r'</td>'
td_regex=re.compile(r'<[^>]*?t[^>]*?d[^>]*?\/[^>]*?>|<[^>]*?t[^>]*?\/[^>]*?d[^>]*?>|<[^>]*?d[^>]*?t[^>]*?\/[^>]*?>|<[^>]*?d[^>]*?\/[^>]*?t[^>]*?>|<[^>]*?\/[^>]*?t[^>]*?d[^>]*?>|<[^>]*?\/[^>]*?d[^>]*?t[^>]*?>')
td_regex.sub(substitute_string, string_to_process)