[英]Python - using variable in regular expression
我正在嘗試使用正則表達式更改字符串中的寬度值。
寬度可以有多種格式,例如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)
有沒有辦法使用一個正則表達式並相應地替換字符串:
或=
?
編輯
更改了上面的代碼,因此:和=進行了相應更改,而不是將所有替換為“ =”
您可以使用|
並像這樣分組:
>>> 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
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.