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

質問編集履歴

4

修正

2020/09/15 11:02

投稿

person
person

スコア224

title CHANGED
File without changes
body CHANGED
@@ -30,7 +30,7 @@
30
30
  これで一応×の表示が出て、s = "00000" としたら○の表示になりました。
31
31
 
32
32
  ~~~上のコードは半角数字5桁と一致するかどうかという意味では正しいコードといえますか?~~~
33
- \dでも全角拾ってしまうようです。
33
+ \wでも全角拾ってしまうようです。
34
34
 
35
35
  他にいい方法があれば教えてください。
36
36
 

3

修正

2020/09/15 11:02

投稿

person
person

スコア224

title CHANGED
File without changes
body CHANGED
@@ -29,7 +29,9 @@
29
29
 
30
30
  これで一応×の表示が出て、s = "00000" としたら○の表示になりました。
31
31
 
32
- 上のコードは半角数字5桁と一致するかどうかという意味では正しいコードといえますか?
32
+ ~~~上のコードは半角数字5桁と一致するかどうかという意味では正しいコードといえますか?~~~
33
+ \dでも全角拾ってしまうようです。
34
+
33
35
  他にいい方法があれば教えてください。
34
36
 
35
37
  また、match()とfullmatch()で挙動が違ったのは "\d" の解釈が違うのでしょうか?

2

修正

2020/09/15 04:39

投稿

person
person

スコア224

title CHANGED
File without changes
body CHANGED
@@ -19,7 +19,7 @@
19
19
  s = "000000"
20
20
  p1 = r"\d{5}" # 数字5文字
21
21
  p2 = r"\w{5}" # 半角5文字
22
- if re.match(p, s):
22
+ if re.fullmatch(p1, s) and re.match(p2, s):
23
23
  print("o")
24
24
  else:
25
25
  print("x")

1

修正

2020/09/15 04:26

投稿

person
person

スコア224

title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,7 @@
8
8
  else:
9
9
  print("x")
10
10
  ```
11
- としたが、7桁以上でも○になってしまいました。
11
+ としたが、6桁以上でも○になってしまいました。
12
12
  これについては match() ではなく fullmatch()
13
13
  にしたことで問題なくなりましたが、全角文字で
14
14
  ○になってしまいます。