python正则表达式模式查找
我正在尝试将现有值替换为 输入:python正则表达式模式查找,python,Python,我正在尝试将现有值替换为 输入: a = """{"value”:”123456789”,”id":"0"},{"value”:”1234567891234”,”id":"1"},{"value”:”1234567891234567”,”id":"2"}""" 预期产出: """{"value”:”aaaaaa789”,”id":"0"},{"value”:”aaaaaaaaaa234”,”id":"1"},{"value”:”aaaaaaaaaaaaa567”,”id":"2"}"""
a = """{"value”:”123456789”,”id":"0"},{"value”:”1234567891234”,”id":"1"},{"value”:”1234567891234567”,”id":"2"}"""
预期产出:
"""{"value”:”aaaaaa789”,”id":"0"},{"value”:”aaaaaaaaaa234”,”id":"1"},{"value”:”aaaaaaaaaaaaa567”,”id":"2"}"""
=============
a = """{"value”:”123456789”,”id":"0"},{"value”:”1234567891234”,”id":"1"},{"value”:”1234567891234567”,”id":"2"}"""
b = re.sub('\d{6}','aaaaaa', str(a))
print(b)
{"value”:”aaaaaa789”,”id":"0"},{"value”:”aaaaaaaaaaaa4”,”id":"1"},{"value”:”aaaaaaaaaaaa4567”,”id":"2"}
================
a = """{"value”:”123456789”,”id":"0"},{"value”:”1234567891234”,”id":"1"},{"value”:”1234567891234567”,”id":"2"}"""
b = re.sub('\d{6}','aaaaaa', str(a))
print(b)
{"value”:”aaaaaa789”,”id":"0"},{"value”:”aaaaaaaaaaaa4”,”id":"1"},{"value”:”aaaaaaaaaaaa4567”,”id":"2"}
任何帮助都会很好。解决方案
它替换所有尾随有三个或三个以上数字的数字:
重新导入
text=“{”value:“123456789”,“id:“0”},{”value:“1234567891234”,“id:“1”},{”value:“1234567891234567”,“id:“2”}”
应为=“{”值“:“aaaaaa 789”,“id:“0”},{”值“:“aaaaaa 234”,“id:“1”},{”值“:“aaaaaaaa 567”,“id:“2”}”
pattern=re.compile(r'\d(?=\d{3}))
结果=pattern.sub('a',text)
打印(结果)
打印(结果==预期)
输出:
{“value”:“aaaaaa789”,“id”:“0”},{“value”:“aaaaaaaa234”,“id”:“1”},{“value”:“aaaaaaaa567”,“id”:“2”}
符合事实的
或者不重新编译:
result=re.sub(r'\d(?=\d{3})'a',text)
解释
匹配数字(等于\d
)[0-9]
是“正向前瞻”。它在泊松中匹配,泊松具有以下(?=\d{3})
(三位数字)\d{3}
- 因此,它将具有以下三个数字的任何数字替换为
'a'