2017-09-13 3 views
-3

등록 플레이트와 같은 문자열의 형식을 확인하고 싶지만 어디서부터 시작해야할지 모르겠습니다.파이썬에서 문자열의 형식을 확인하는 방법은 무엇입니까?

문자열이 'LLNN LLL'형식을 따르는 지 여부를 프로그램이 감지하도록합니다. 여기서 L은 문자이고 N은 숫자입니다.

문자열의 형식을 검사하는 것과 관련하여 여러 가지 다른 질문이 있지만 다른 프로그래밍 언어의 경우 어디에 있는지 살펴 보았습니다.

+0

찾고있는이 무엇을 생각합니다. –

+1

이것은 정규식 작업입니다. [regex howto] (https://docs.python.org/3/howto/regex.html)를 참조하십시오. –

답변

1

이와 같은 패턴 일치는 정규 표현식으로 해결됩니다.

정규 표현식 – 또는 정규식 – 다른 문자열에 사용할 수있는 검색 패턴을 정의하는 문자열입니다.

파이썬에서는 the re module으로 덮어 씁니다. 일례로서

다음의 용도 놓 매칭 c 다음 어느a 또는 b, []를 검색한다. 첫 번째 경우에는 과 일치하지 않으므로 None을 반환합니다. 두 번째 경우에는 zx 사이에 bc이라는 일치 항목이 하나 있습니다. 따라서 if 문에서 True으로 평가됩니다.

matches_none = re.search('[ab]c', 'cc') 
matches_once = re.search('[ab]c', 'qqqzzzbcxxx') 

파이썬 docs 상태에는 세트 나 특정 조건과 일치하는 특정 특수 시퀀스가 ​​있습니다. 예를 들어 \d은 임의의 숫자와 일치하며 \w은 영숫자와 일치합니다. 다음은 모두 일치하는 항목을 찾습니다.

re.search('\w\d', '!!!54???') 
re.search('\d\w', '[email protected]#[ff') 
re.search('[abc]\d\w', 'a5a') 

일치하는 그룹, lookaheads, 시작 - 최종의 문자열 일치, 그리고 수와 다양성을 처리하는 여러 가지 방법을 선택하는 기능을 포함하여 정규 표현식의 다른 기능의 전체 호스트가있다.

+0

나는 아직도 내 코드에 그와 같은 것을 통합하는 법을 이해하지 못한다 ... – TheOneWhoLikesToKnow

-1

나는 당신이 당신은 항상 정규식으로 보면, 스스로를 코딩 할 수 있습니다

In [1]: import re 

In [2]: temp = 'LL22 LLL' 

In [3]: re.findall(r'[a-zA-Z][a-zA-Z]\d\d [a-zA-Z]+',temp) 
Out[3]: ['LL22 LLL'] 
+0

regexps가 무엇인지에 대한 설명은 어떤 설명도없이 문제를 해결하는 코드 스 니펫보다 도움이되었을 것이다. –

+0

@ brunodesthuilliers 이미 첫 번째 대답은 정규 표현식에 대한 설명이었습니다. 어떤 것에 대답하는 것은 말이되지 않습니다. 따라서 문제에 대한 해결책을 작성했습니다. –

+0

그러면 첫 번째 답변에 주석으로 게시했을 수 있습니다. –