簡體   English   中英

re.sub() 通配符字符串替換

[英]re.sub() wildcard string replacement

這是源字符串,它有兩個通配符<1><2> ,都是任意位數。

SomeText<1>_<2>.value

我需要將上面的字符串轉換為這個字符串,將<1><2>替換為在源字符串中找到的完全相同的數字。

SomeOtherText_<2>r962<1>xyz

我猜這個表達式很可能會這樣做:

import re
regex = r"^.*?<(\d+)>_<(\d+)>.*$"
test_str = """

SomeText<192>_<283>.value
    SomeText<>_<>.value
    SomeOtherText_<192>r962<283>xyz
"""
subst = "SomeOtherText_<\\1>r962<\\2>xyz"

print(re.sub(regex, subst, test_str, 0, re.MULTILINE))

該表達式在regex101.com 的右上角面板中進行了解釋,如果您希望探索/簡化/修改它,並且在此鏈接中,您可以觀看它如何與某些示例輸入匹配,如果您願意的話。

暫無
暫無

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

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