簡體   English   中英

Python-在正則表達式中使用變量

[英]Python - using variable in regular expression

我正在嘗試使用正則表達式更改字符串中的寬度值。

寬度可以有多種格式,例如width="500px"width:500pxwidth=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

希望這可以幫助。

試試這個正則表達式:

width(:|=)"?\w{3}

它匹配:

width="300px
width=300px
width:"300px
width:300px

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM