Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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 匹配模式后替换为re.sub_Python_Regex - Fatal编程技术网

Python 匹配模式后替换为re.sub

Python 匹配模式后替换为re.sub,python,regex,Python,Regex,我有一个正则表达式替换,我想不出来 s2 = re.compile("^DATA_ARRAY (.*?};)", re.DOTALL|re.MULTILINE) result = re.sub(s2, "newData", inputData) 问题是,它也替换了“数据数组”部分。我只需要替换“数据数组”部分后面的文本。我已将数据放在s2(.*?};)中的一个组中,但无法确定如何使用re.sub函数仅替换所需的部分 问候 s2 = re.compile("^(DATA_ARRAY )(

我有一个正则表达式替换,我想不出来

s2 = re.compile("^DATA_ARRAY (.*?};)", re.DOTALL|re.MULTILINE)    
result = re.sub(s2, "newData", inputData)
问题是,它也替换了“数据数组”部分。我只需要替换“数据数组”部分后面的文本。我已将数据放在s2
(.*?};)
中的一个组中,但无法确定如何使用re.sub函数仅替换所需的部分

问候

s2 = re.compile("^(DATA_ARRAY )(.*?};)", re.DOTALL|re.MULTILINE)    
result = re.sub(s2, r"\1newData", inputData)
您可以捕获
第一组
并通过
反向引用进行替换

或者干脆

s2 = re.compile("^DATA_ARRAY (.*?};)", re.DOTALL|re.MULTILINE)    
result = re.sub(s2, "DATA_ARRAY newData", inputData)

s2=re.compile(“(?真的吗?)lookbehinds不会匹配模式..?我尝试了,但没有得到任何与此正则表达式匹配的结果。谢谢,这帮助我走上了正确的道路!实际上我必须使用命名的反向引用,因为“newData”在一个变量中。
s2 = re.compile("(?<=^DATA_ARRAY )(.*?};)", re.DOTALL|re.MULTILINE)    
result = re.sub(s2, "newData", inputData)