문자열이이 패턴과 일치하는지 어떻게 확인합니까?
대문자, 숫자, 대문자, 숫자 …
예를 들면 다음과 같습니다.
A1B2
B10L1
C1N200J1
이것들은 그렇지 않습니다 ( ‘^’는 문제를 지적합니다)
a1B2
^
A10B
^
AB400
^
답변
import re
pattern = re.compile("^([A-Z][0-9]+)+$")
pattern.match(string)
편집 : 주석에서 언급했듯이 match
문자열의 시작 부분에서만 일치하는 항목 만 확인하고 문자열의 re.search()
어느 곳에서나 패턴과 일치합니다. ( https://docs.python.org/library/re.html#search-vs-match 참조 )
답변
짧막 한 농담: re.match(r"pattern", string) # No need to compile
import re
>>> if re.match(r"hello[0-9]+", 'hello1'):
... print('Yes')
...
Yes
bool
필요에 따라 평가할 수 있습니다
>>> bool(re.match(r"hello[0-9]+", 'hello1'))
True
답변
다음을 시도하십시오 :
import re
name = ["A1B1", "djdd", "B2C4", "C2H2", "jdoi","1A4V"]
# Match names.
for element in name:
m = re.match("(^[A-Z]\d[A-Z]\d)", element)
if m:
print(m.groups())
답변
import re
import sys
prog = re.compile('([A-Z]\d+)+')
while True:
line = sys.stdin.readline()
if not line: break
if prog.match(line):
print 'matched'
else:
print 'not matched'
답변
정규식은 이것을 쉽게 만듭니다 …
[A-Z]
A와 Z 사이의 정확히 하나의 문자와 일치합니다
\d+
하나 이상의 숫자와 일치합니다
()
물건을 그룹화 (그리고 물건을 반환하지만 지금은 그룹화를 생각하십시오)
+
1 이상을 선택
답변
import re
ab = re.compile("^([A-Z]{1}[0-9]{1})+$")
ab.match(string)
대문자, 숫자 패턴으로
작동해야한다고 생각합니다 .