使用python(正则表达式模块),我正在试图替换' x'对于每个字母' c'在文本中出现的那些字符串中:
由左边的' a'分隔,' b'在右边,
不再包含其中的'及其中的
示例:
cuacducucibcl
- > cuaxduxuxibcl
我该怎么做?
谢谢。
答案 0 :(得分:1)
使用Python中的标准re
模块,您可以使用a[^ab]+b
来匹配以a
和b
开头和结尾的字符串,并且不会任何a
或b
出现之间,然后提供替换函数来处理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'