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

时间:2015-02-13 10:13:26

标签: regex python-3.x

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

  1. 由左边的' a'分隔,' b'在右边,

  2. 不再包含其中的'及其中的

  3. 示例:

    cuacducucibcl - > cuaxduxuxibcl

    我该怎么做?

    谢谢。

2 个答案:

答案 0 :(得分:1)

使用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的文件供参考。

答案 1 :(得分:0)

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

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

DEMO