レッスン2 / 2問目

『正規表現のメタ文字』

このレッスンでは正規表現のメタ文字について見ていきましょう。

前回のレッスンではメタ文字として、 . , \d , * を紹介しましたが、メタ文字は他にも様々な種類があります。ここではよく使うものを一覧として紹介しますが、一度に覚える必要はありません。


メタ文字説明マッチする文字列
.改行以外の任意の1文字.a
*直前のパターンの0回以上の繰り返しにマッチa*a
aa
aaa......
+直前のパターンの1回以上の繰り返しにマッチa+aa
aaa.....
?直前のパターンが0回もしくは1回の出現した場合にマッチab?cabc
ac
^直後のパターンが行の先頭にある場合マッチ^a.*abcd...
$直前のパターンが行の末尾にある場合マッチ.*cd$abcd
|複数の条件のうち1つにマッチ(or)--
[]カッコ内に記述した文字のいづれか一つにマッチ
複数マッチする場合は先頭に近い文字がマッチ
[abc]
[a-z]
[1-9]
a, b, cのいづれか
a~z
1~9
[^]カッコ内に記述した文字以外の場合にマッチ
複数マッチする場合は先頭に近い文字がマッチ
[^abc]a, b, c以外
()括弧で括った箇所をグループでまとめる--
{n}直前のパターンの繰り返し回数を指定a{3}aaa
{n, }繰り返し回数の最小a{3,}aaa
aaaa
aaaaa....
{,n}繰り返し回数の最大a{,3}a
aa
aaa
{n, m}繰り返し回数最小(n), 最大(m)a{2,3}aa
aaa
メタ文字説明
\d数字
\D数字以外の文字
\s空白文字
\S空白文字以外の文字
\wアルファベット、数字、アンダーバー
\Wアルファベット、数字、アンダーバー以外の文字

では、上記のメタ文字を用いて練習問題にチャレンジしましょう。

Lesson1

文字列s1から正規表現を用いて以下を出力してください。

1111

メタ文字には「 . 」「 * 」を使用してください。


Lesson2

文字列s2から正規表現を用いて以下を出力してください。

Hello

メタ文字には「 . 」「 * 」「 \s 」を使用してください。

Last updated:2019/12/23

1111
Hello
  1. import re
  2. # 問題1
  3. s1 = "1111"
  4. m = re.match(".*", s1)
  5. print(m.group())
  6. # 問題2
  7. s2 = "Hello World"
  8. m = re.match(".*\s", s2)
  9. print(m.group())
main.py
設定
g
n
i
d
a
o
L