用于匹配此字符串的正则表达式

Regex for matching this string

使用 python(正则表达式模块),我正在尝试用 'x' 替换文本中出现的那些字符串中的每个字母 'c' 和:

  1. 左边是'a',右边是'b',

  2. 其中不再有 'a' 和 'b'。

示例:

cuacducucibcl -> cuaxduxuxibcl

我该怎么做?

谢谢。

使用下面的正则表达式,然后用 x 替换匹配的 c。为此,您需要安装外部 regex 模块。

>>> import regex
>>> s = 'cuacducucibcl'
>>> regex.sub(r'((?:a|(?<!^)\G)[^abc\n]*)c', r'x', s)
'cuaxduxuxibcl'

DEMO

使用Python中的标准re模块,您可以使用a[^ab]+b来匹配以ab开头和结尾的字符串,并且在两者之间没有任何 ab 的出现, 然后 提供一个替换函数来处理 c 的替换:

>>> import re
>>> re.sub('a[^ab]+b', lambda m: m.group(0).replace('c', 'x'), 'cuacducucibcl')
'cuaxduxuxibcl'

re.sub的文档供参考。