質問するログイン新規登録

回答編集履歴

1

微修正

2023/07/25 08:10

投稿

ikedas
ikedas

スコア4441

answer CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  順に読んでいくと、「モジュールコンテンツ」に、このライブラリによって利用できるようになる関数が載っています。
4
4
 
5
- * re.search()は「string を走査し、正規表現 pattern がマッチを生じさせる最初の場所を探して、対応する マッチオブジェクト を返します」ということなので、**中間一致**です。ですから文字列中のマッチさせたいパターン (今回は数値) の前や後になにか余分なものがあってもマッチしてしまいます。それをさせないためには、正規表現の前後に「`^`」「`$`」を置く必要があるでしょう。
5
+ * re.search()は「string を走査し、正規表現 pattern がマッチを生じさせる最初の場所を探して、対応する マッチオブジェクト を返します」ということなので、**中間一致**です。ですから文字列中のマッチさせたいパターン (今回は数値) の前や後になにか余分なものがあってもマッチしてしまいます。それをさせないためには、正規表現の前後に「`^`」「`$`」を置く必要があるでしょう。
6
6
  * re.match()は「string の先頭で 0 個以上の文字が正規表現 pattern にマッチすれば、対応する マッチオブジェクト を返します」ということなので、**前方一致**です。ですから文字列中のマッチさせたいパターンの後になにか余分なものがあってもマッチしてしまいます。それをさせないためには、正規表現の最後に「`$`」を置く必要があるでしょう。
7
7
  * re.fullmatch()は「string 全体が正規表現 pattern にマッチするなら、対応する マッチオブジェクト を返します」ということなので、**完全一致**です。ですから文字列がマッチさせたいパターンだけから成り、前や後に何もないときだけマッチします。
8
8