Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python正则表达式模式查找_Python - Fatal编程技术网

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'

那么您想按值排序吗?您的实际数据是否是有效的json,而这只是一个键入的版本?实际输入是一个字符串。从字符串中,我试图找到一个数字模式..a=“”{“value”:“123456789”,“id”:“0”},{“value”:“1234567891234”,“id”:“1”},{“value”:“123456781234567”,“id”:“2”}“b=re.sub('\d{6}”,“aaaa”,str(a)),请重新写下你的问题,因为你不清楚你想实现什么。假装我们对你的情况一无所知(因为我们不知道),然后详细解释。@onyanbu好吧,我错了。谢谢你的建议:)真棒的人。谢谢崔。@parker很乐意帮忙!如果问题解决了,请不要忘记接受答案。:)