2009-11-04 4 views
8

파이썬 모듈을 다시 사용하여 숫자 문자 ("[0-9]"와 일치 할 수있는 문자)와 일치하지 않고 "\ w"(영숫자 문자와 일치 함)를 가져 오는 방법은 무엇입니까?숫자 문자없이 알파벳 문자를 Python 정규 표현식과 비교하는 방법은 무엇입니까?

기본적으로 필요한 것은 "(0-9]"와 일치하는) 숫자 문자없이 모든 문자 (모든 유니 코드 변형 포함)를 일치시키는 것입니다.

더 큰 정규 표현식의 일부이므로 실제로 정규 표현식이 필요합니다.

밑줄은 일치하지 않아야합니다.

편집 : 이것에 대해 경고에 대한 감사는 "w \"에 의해이 문제를 해결 선출 된 솔루션을 일치되고, 그래서 내가 생각하지 않았다

  • 이 상태를 강조한다.

답변

24

을 :

(?=\D)\w 

는 괄호로 묶으, 이러한 여러 일치하는 문자의 그룹을 (숫자 또는 영숫자가 아닌). 그 중 하나를 원하지 않는다면 부정 된 세트에 밑줄을 추가하십시오.

나에게 묻는다면 비트가 꼬여 있지만 작동합니다. Lookahead 대안보다 빠를 수 있습니다.

+0

니스, +1. 그거 생각하지 않았어. – Tomalak

+0

다른 아이디어와 다른 regex 구현으로 재사용 할 수있는 좋은 아이디어입니다. – vaab

5
(?!\d)\w 

\w 다음 숫자 뒤에, 그리고 위치된다. 효과적으로 숫자를 취소하지만 네가티브 미리보기를 사용하여 \w 범위를 허용합니다.

같은이 긍정적 인 예견하고 \D 다음과 같이 표현 될 수

: 당신은 [^\W\d] 원하는

(?:(?!\d)\w)+ 
+3

\ w도 밑줄을 포함한다는 것을 잊지 마십시오. –

+0

OP는 밑줄에 대해 아무 말도하지 않았습니다. 그게 어떻게 관련이 있니? – Tomalak

+1

OP가 예상치 못한 경우를 대비하여. 나는 당신의 해결책을 좋아합니다. –

관련 문제