如果特定字符位于与Python中的模式匹配的字符串中,则替换该特定字符

时间:2015-11-25 21:18:56

标签: python regex

如果匹配模式,是否可以使用正则表达式替换字符串中的特定字符? 例如,如果\位于两个X个字符内,我想将$替换为 $some\string here inside$ and [some here \out side] ,否则它应保持不变。

$someXstring here inside$ and [some here \out side]

我期望在输出中有什么

re.sub(r'\$*\\*\$', 'X', b)

$X替换为re.sub。我应该如何使用FILE *test; student st; int i = 0; test = fopen("example.bin", "rb"); while (feof(test)) { fread(&st, sizeof(st),1,test); Class[i] = st; i++; } fclose(test); 命令执行此操作?

2 个答案:

答案 0 :(得分:3)

您可以lambda使用re.sub使用str.replace来替换与您的模式匹配的\\

s = "$some\string here inside$ and [some here \out side]"
import re

print(re.sub(r"\$.*\\.*\$",lambda  x: x.group().replace("\\","X"),s))
$someXstring here inside$ and [some here \out side]

答案 1 :(得分:1)

Regexless解决方案:

s = r'$some\string here inside$ and [some here \out side]'

def solution(s):
    inside = False
    for c in s:
        if c == '$':
            inside = not inside
            yield c
        elif inside and c == '\\':
            yield 'X'
        else:
            yield c


print(''.join(solution(s)))

我知道一些解释会受到欢迎,但目前我不知道我能解释什么。