좋아요, 다음 코드 조각이 있습니다.regex에서 대체 사전 찾기
out = out + re.sub('\{\{([A-z]+)\}\}', values[re.search('\{\{([A-z]+)\}\}',item).group().strip('{}')],item) + " "
또는 더 분류 :
out = out + re.sub(
'\{\{([A-z]+)\}\}',
values[
re.search(
'\{\{([A-z]+)\}\}',
item
).group().strip('{}')
],
item
) + " "
을 그래서, 기본적으로, 당신은 그것을 포함 된 문자열을 주면 {{참조}}, 그것은 그것의 인스턴스를 발견하고 그들을 대체합니다 주어진 참조. 현재 형태의 문제는 첫 번째 참조를 기반으로 만 작동한다는 것입니다. 예를 들어, 제 값을 사전
values = {
'bob': 'steve',
'foo': 'bar'
}
이었다 말하고 우리는 그것을 문자열
item = 'this is a test string for {{bob}}, made using {{foo}}'
나는 그것이 out
'this is a test string for steve, made using bar'
에 넣어하지만은 현재 출력하는
입니다하려는 전달'this is a test string for steve, made using steve'
루프의 위치를 고려하여 코드를 어떻게 변경합니까?
코드가 입력이 나는 다음과 같은 코드를 사용하여 출력을 가지고 {{foo}}{{steve}}
가'[아즈]가'뿐만 아니라 APHA 것을주의, 그것은 Z'와'A''사이의 모든 문자가 포함 , 즉. '[\]^_'및 \' – Toto
괜찮습니다. 코드 만 사용하고 있으며 그 기호를 사용하지는 않습니다. 어쨌든'[A-Za-z]'로 바꿀 수도 있습니다. –
참조'{{reference}} '의 다른 형식을 사용할 수 있습니까? 왜냐하면 당신이 {reference}로 바꿀 수 있다면 그냥 다음과 같이하면됩니다 :''{bob}의 테스트 문자열입니다. {foo} '형식 (** values)' – miszczu