我正在尝试使用正则表达式更改字符串中的宽度值。
宽度可以有多种格式,例如width="500px"
或width:500px
或width=500px
(不含引号)等。
目前,我正在搜索并单独更换
p = re.compile('width="\w{3}')
embed_url = p.sub('width="555', embed_url)
# width:"555
p = re.compile('width:"\w{3}')
embed_url = p.sub('width:"555', embed_url)
有没有办法使用一个正则表达式并相应地替换字符串:
或=
?
修改
更改了上面的代码,因此:和=相应更改,而不是用“=”替换所有代码
答案 0 :(得分:0)
您可以使用|
并进行分组:
>>> p = re.compile('width(:|=)"\w{3}')
>>> print(p.sub('width="555', 'width="500px"'))
width="555px"
>>> print(p.sub('width="555', 'width:"500px"'))
width="555px"
如果在组中包含引号/撇号,则可以执行以下操作:
>>> p = re.compile('width(:|=)("|\')\w{3}')
>>> print(p.sub('width="555', 'width:"500px"'))
width="555px"
>>> print(p.sub('width="555', 'width:\'500px"'))
width="555px"
>>> print(p.sub('width="555', 'width="500px"'))
width="555px"
>>> print(p.sub('width="555', 'width=\'500px"'))
width="555px"
添加?
会使前一个元素成为可选项:
>>> p = re.compile('width(:|=)("|\')?\w{3}')
>>> print(p.sub('width="555', 'width="500px"'))
width="555px"
>>> print(p.sub('width="555', 'width=500px'))
width="555px
希望这有帮助。
答案 1 :(得分:0)