文字列がこのパターンに一致するかどうかを確認するにはどうすればよいですか?
大文字、数字、大文字、数字...
例、これらは一致します:
A1B2
B10L1
C1N200J1
これらはそうではありません(「^」は問題を示しています)
a1B2
^
A10B
^
AB400
^
文字列がこのパターンに一致するかどうかを確認するにはどうすればよいですか?
大文字、数字、大文字、数字...
例、これらは一致します:
A1B2
B10L1
C1N200J1
これらはそうではありません(「^」は問題を示しています)
a1B2
^
A10B
^
AB400
^
import re
pattern = re.compile("^([A-Z][0-9]+)+$")
pattern.match(string)
一発ギャグ: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 の間の正確に 1 文字に一致します
\d+
1 つ以上の数字と一致します
()
ものをグループ化します (また、ものを返します... しかし、今のところ、それらをグループ化することを考えてください)
+
1 つ以上を選択します
import re
ab = re.compile("^([A-Z]{1}[0-9]{1})+$")
ab.match(string)
大文字の数字パターン
で機能するはずです。