![](/img/trans.png)
[英]How to do Regular Expressions with multiple brackets and only generate string from brackets that contains specific characters
[英]How to replace only the contents within brackets using regular expressions?
如何使用正則表達式僅替換括號內的內容?
String = "This is my string [123]"
我想用456代替123
Desired_String = "This is my string [456]"
我的嘗試:
regex = '.*\[(.*?)\].*'
re.sub(regex,'456',String)
>> 456
我不確定要使用什么正則表達式,以便它用456代替123。
如果稍微修改一下正則表達式和替換字符串,就會得到:
regex = '\[.*?\]'
re.sub(regex,'[456]',String)
您無需將整個字符串與.*
匹配即可進行替換。
另外,這里並不完全需要它,但是最好提取正則表達式字符串:
regex = r'\[.*?\]'
^
另一種選擇是使用否定的類,這也會更快!
regex = r'[^\[\]]+(?=\])'
re.sub(regex,'456',String)
可能會有些混亂,但是[^\\[\\]]+
匹配[
和]
以外的任何字符。
另外,您可以使用先行斷言和先行斷言( 文檔 ):
>>> regex = r'(?<=\[).*?(?=\])'
>>> re.sub(regex, '456', 'This is my string [123]')
'This is my string [456]'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.