2014-04-10 4 views
1

나는 다음과 같은 정규 표현식이 아래 : 아직 난 단지 알파벳 문자를 식별 할 수있는 별도의 정규식이파이썬 영숫자 정규식

Tomkiewicz Zigomalas Andrade Mcwalters 

, :이 정규식에 대해 현재의 데이터를 실행 해요

alphanumeric = compile('^[\w\d ]+$') 

을 위의 데이터는 영숫자 기준과 여전히 일치합니다.

편집 : 위의 정규식과 일치하는 유일한 알파 데이터를 어떻게 중지합니까?

+0

대괄호 안의 문자 클래스는 표현식 중 _any_와 일치합니다. '[\ w \ d]'는 "숫자 또는 문자"를 의미합니다. 글자 만 쓰려면 '\ d'를 제거하십시오. –

+0

문자와 숫자가 필요합니다. 영숫자 데이터와 일치시키기를 원하지만 알파 문자 만있는 데이터와 비교합니다. – Glitchezz

+0

@ g.d.d.c'\ w'도 숫자를 포함합니다 :-) – hjpotter92

답변

1

설명 : 두 형태 일 수있다 : 숫자 문자와

  1. 시작 후 가능 영숫자 문자의 임의의 수에 따라 약간의 문자,이 있어야한다.
  2. 영문자로 시작한 다음 일부 숫자 뒤에 임의의 수의 영숫자 문자를 사용할 수 있습니다.

데모 :

(?=.*[a-zA-Z])(?=.*[0-9])^[\w\d ]+$ 

정규식 위에 두 lookaheads을 이용한다 :

>>> an_re = r"(\d+[A-Z])|([A-Z]+\d)[\dA-Z]*" 
>>> re.search(an_re, '12345', re.I) # not acceptable string 
>>> re.search(an_re, 'abcd', re.I) # not acceptable string 
>>> re.search(an_re, 'abc1', re.I) # acceptable string 
<_sre.SRE_Match object at 0x14153e8> 
>>> re.search(an_re, '1abc', re.I) 
<_sre.SRE_Match object at 0x14153e8> 
+0

감사합니다. – Glitchezz

+0

@Glitchezz 'I'과 함께 작동하지만 내 RE를 이해합니까? 그리고 나는'\ w'을'_'을 포함하여 사용하지 않았 음을 기억하십시오. 그리고 저는'^'와'$'를 연습으로 사용했습니다. –

1

는 적어도 하나의 알파 및 적어도 하나의 숫자가 존재한다는 조건을 주장하는 룩어 사용 먼저 각 조건에 대한 전체 문자열을 확인하십시오. 미리보기는 지정된 범위의 단일 문자가 검색 될 때까지 검색합니다. 어설 션이 일치하면 다음 어설 션으로 이동합니다. 마지막 부분은 OP의 원래 시도에서 빌려서 전체 문자열이 하나 이상의 lower/upper alphas, 밑줄, 숫자 또는 공백으로 구성되도록합니다.

+0

Tenub 나는 RE를 이해하려고 노력했으나 할 수 없었습니다. 나를 위해서? (비록 내가 내일 레슨을 위해 이것을 북마크에 넣었음) +1 예를 들어 RE 예를 들어. 감사. –