2011-05-03 2 views
1

나는 파이썬에서 r"[^\1]"과 같은 것을 찾고있다. "" "Z", "B"에 의해 을 "의 : 예를 들어, 나는 모든 문자가 다른 하나 (예에 의해 대체 된 텍스트로"안녕하세요 "같은을 단어를 일치시킬 r ", ...). "안녕하세요"가 될 수 "zcuuj", "prvva" ... 내가 파이썬에하고 싶은 말 : 다음, "나에게 다음 [a-z]로 시작하는 단어, 처음과 같은 하지이다 편지를 찾아 . 같은 두 글자는 다음 편지 느릅 나무는파이썬에서 어떻게 그룹을 보완합니까?

다른 사람의 차이가 나는이 패턴을 시도했다 :

r"([a-z])([^\1])([^\1\2]){2}([^\1\2\3])" 

(작동하지 않습니다)

이 하나

0 당신은 당신이 나중에 (?P=name)를 사용하여 참조 할 수 있습니다 명명 된 그룹을 만들 (?P<name>...)를 사용할 수있는 documentation에 따르면
r"([a-z])((?!\1))((?!\1|\2)){2}((?!\1|\2|\3])" 

(작동하지 않습니다)

+0

무엇이 작동하지 않습니까? 어떤 오류가 발생하고 있습니까? –

답변

0

.

1

이며, 부정적인 내다 주장은 비 소모이 여기

^([a-z])(?!\1)([a-z])(?!(?:\1|\2))(([a-z])\4)(?!(?:\1|\2|\4))[a-z] 

내가 두 번째 예 온라인 here on rubular

문제를 테스트 해보십시오. 즉, 캐릭터를 확인한 후에 캐릭터를 소비해야한다는 의미입니다. 나는 여기에 .과 참조가있는 모든 미리보기를 한 후에이 작업을 수행합니다.

첫 번째 예제의 문제점은 이러한 참조를 문자 그룹에 넣을 수 없다는 것입니다.

UPDATE : 첫 번째 버전은 첫 번째 후 [a-z] 이외의 문자를 허용 한 것 때문에, 내 정규식과 Rubular 나 링크를 업데이트했습니다.

관련 문제