Hi希望创建一个regexp,它接受下面的字符串并屏蔽从"开始的所有位置的所有ID;梦想";。
s = """Cli house create --house-id dream1.house.hc1.area.aaaaaaaah454432fg7zf5h2ufqxvfhzqokkaufgf5znua36p4puwnog7akcq --zip-code 123456 --sub-zip-id dream1.zip.zc1.area..aaaaaaaawjdrauwdwzn4kfsma7bomq26l3zjeqmx6qsgihhr4kadmbgngxlq --type victorian"""
并将其转换为
s = """Cli house create --house-id dream1.house.hc1.area.<ID> --zip-code 123456 --sub-zip-id dream1.zip.zc1.area..<ID> --type victorian"""
s=re.sub(r〃(dream\w*.+((?=*.((.+(〃"1〃;,s(
但它只在ID结束时工作,即
dreamCli house create --house-id dream1.house.hc1.area.aaaaaaaah454432fg7zf5h2ufqxvfhzqokkaufgf5znua36p4puwnog7akcq
id将始终以这种格式
梦想<数字>lt;字符串>lt;字符串>lt;字符串>。。。
您可以匹配
(bdreamS*.)S*
(
捕获组1bdreamS*.
一个单词边界,匹配dream
,直到最后一个没有匹配空白字符的点
)
关闭组S*
匹配0+非空白字符(在不匹配空白字符的情况下匹配后面的内容(
并替换为捕获组,然后是<ID>
1<ID>
Regex演示
示例代码
import re
regex = r"(bdreamS*.)S*"
test_str = "Cli house create --house-id dream1.house.hc1.area.aaaaaaaah454432fg7zf5h2ufqxvfhzqokkaufgf5znua36p4puwnog7akcq --zip-code 123456 --sub-zip-id dream1.zip.zc1.area..aaaaaaaawjdrauwdwzn4kfsma7bomq26l3zjeqmx6qsgihhr4kadmbgngxlq --type victorian"
result = re.sub(regex, r"1<ID>", test_str)
print(result)
输出
Cli house create --house-id dream1.house.hc1.area.<ID> --zip-code 123456 --sub-zip-id dream1.zip.zc1.area..<ID> --type victorian