簡體   English   中英

正則表達式 - re.sub 解釋

[英]Regex – re.sub explanation

我知道 re.sub 的 function 是用 B 替換 A,但是,這里我不明白當 () 在字符串 grey 中修改時所做的操作,我沒有得到\g<1>的作用\g<1> \g<2>等。

在正則表達式中,括號是一個捕獲組。 這意味着您想要保存比賽的一個特定部分,並在以后使用它。 \g<1>是一種表示“第一個捕獲組”的方式, \g<2>是一種表示“第二個捕獲組”的方式,依此類推。

re.sub()的行為很有趣。 第一個字符串是要查找的內容,第二個字符串是替換它的內容。 如果您將第二個字符串留空,它只會刪除匹配項; 如果您添加一些文本,它將用該文本替換所有匹配項。 但是,如果您想獲取匹配的文本並將其添加回來怎么辦? 這就是\g<#>派上用場的地方,使用它。 您可以將匹配的相同字符串放回找到它的位置。

  • (gr[ae]y)的意思是“如果你發現greygray ,像往常一樣刪除它,但也要記住它。” 替換字符串\g<1>blue的意思是“取我們記得的第一個匹配項, "grey" ;添加該文本,然后在其后面加上blue ”。 因此, greyblue是結果,因為它像正常一樣刪除了grey ,但隨后將其插入blue之前。
  • ()gr[ae]y的意思是“如果你發現greygray ,像往常一樣刪除它,但記住它前面的空字符串。” 替換字符串\g<1>blue的意思是“取我們記得的第一個匹配項, "" ;添加該文本,然后在其后面加上blue ”。 因此,結果是blue ,因為它像平常一樣刪除了grey ,並在blue之前插入了一個空字符串。

在此處查看更深入的解釋,以及您的示例等等!

暫無
暫無

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

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