使用正则表达式在python中搜索并替换字符串模式

时间:2018-04-19 10:12:46

标签: python regex

我想在python中编写一个正则表达式,在字符串中找到</td= >并将其替换为</td>。角括号内的字符位置可能会改变。例如:它可能是</t= d></= td>,依此类推。尖括号中的一个字符是空格。正则表达式应该找到任何这些事件并将其替换为</td>。在How do I search and replace a pattern in text using regular expression in Python 3?上有类似的问题,但我无法弄清楚答案。怎么做?

1 个答案:

答案 0 :(得分:0)

试试这个正则表达式

<[\/td= ]{5}>
  

https://regex101.com/r/T549ej/2

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)