Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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
Regex 正则表达式替换组(java、python、perl、awk)_Regex_Replace_Grouping_Regex Group - Fatal编程技术网

Regex 正则表达式替换组(java、python、perl、awk)

Regex 正则表达式替换组(java、python、perl、awk),regex,replace,grouping,regex-group,Regex,Replace,Grouping,Regex Group,我正在寻找一种方法,根据带有分组的正则表达式进行替换,但这只会替换组。例如,如果我有: string = "xxxab yyyyab zzzab xxab" 我想称之为: replace_all_group(string, /xx(ab)/,"AB") 并获得: string = "xxxAB yyyyab zzzab xxAB" 非常欢迎使用java、perl、python和awk的任何简短解决方案!到目前为止,我已经能够使用index_of等实现这一点,但我希望在某个地方有某种线性关系

我正在寻找一种方法,根据带有分组的正则表达式进行替换,但这只会替换组。例如,如果我有:

string = "xxxab yyyyab zzzab xxab"
我想称之为:

replace_all_group(string, /xx(ab)/,"AB")
并获得:

string = "xxxAB yyyyab zzzab xxAB"
非常欢迎使用java、perl、python和awk的任何简短解决方案!到目前为止,我已经能够使用index_of等实现这一点,但我希望在某个地方有某种线性关系:

你想要的是一个

仅当ab前面有xx时,才匹配并替换ab

您可以使用以下正则表达式来匹配这样的ab:

你想要的是一个

仅当ab前面有xx时,才匹配并替换ab

您可以使用以下正则表达式来匹配这样的ab:


如果字符串不会变得更复杂:

>>> re.sub("xxab", "xxAB", "xxxab yyyyab zzzab xxab")
'xxxAB yyyyab zzzab xxAB'
或者是@codaddict答案的python版本:

>>> re.sub("(?<=xx)ab", "AB", "xxxab yyyyab zzzab xxab")
'xxxAB yyyyab zzzab xxAB'

如果字符串不会变得更复杂:

>>> re.sub("xxab", "xxAB", "xxxab yyyyab zzzab xxab")
'xxxAB yyyyab zzzab xxAB'
或者是@codaddict答案的python版本:

>>> re.sub("(?<=xx)ab", "AB", "xxxab yyyyab zzzab xxab")
'xxxAB yyyyab zzzab xxAB'

我明白了,这正是我想要的。我一直想看看周围的情况,但不知道它到底在做什么。非常感谢@Coddick,你能发布实际的示例代码吗?这些链接似乎被破坏了。我明白了,这正是我想要的。我一直想看看周围的情况,但不知道它到底在做什么。非常感谢@Coddick,你能发布实际的示例代码吗?这些链接似乎已断开。