回答編集履歴

3

些細な修正

2021/09/23 14:03

投稿

itagagaki
itagagaki

スコア8402

test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
 
24
24
 
25
- これだとマッチする文字列は「100」となり、そこから末尾の1文字がスライスで捨てられて「10」になります。
25
+ これだとマッチする文字列は「100」となり、そこから上記のスライスで末尾の1文字が捨てられて「10」になります。
26
26
 
27
27
 
28
28
 

2

追記

2021/09/23 14:03

投稿

itagagaki
itagagaki

スコア8402

test CHANGED
@@ -23,3 +23,15 @@
23
23
 
24
24
 
25
25
  これだとマッチする文字列は「100」となり、そこから末尾の1文字がスライスで捨てられて「10」になります。
26
+
27
+
28
+
29
+ > en = re.search(r'\d+', '売買単位/100円')
30
+
31
+ > 上記のコードでも100と出力されると思いますが、下記のコードとの違いは何なのでしょうか。
32
+
33
+
34
+
35
+ さあ、それはコードを書いた人の意図なので他人にはわかりませんね。
36
+
37
+ ただ、このコードでは数字の直後に「円」が無い場合でもマッチすることになるので、検索条件としては異なることになりますね。

1

追記

2021/09/23 14:02

投稿

itagagaki
itagagaki

スコア8402

test CHANGED
@@ -1,3 +1,13 @@
1
+ > .group()[0:-1]
2
+
3
+
4
+
5
+ group()はマッチした文字列を返します。
6
+
7
+ つまり「100円」という文字列になります。
8
+
9
+
10
+
1
11
  > [0:-1]
2
12
 
3
13
 
@@ -5,3 +15,11 @@
5
15
  これをスライスと言って、ここでは文字列の最初の文字から最後の文字の1つ前までを切り出します。
6
16
 
7
17
  つまり最後の文字「円」が捨てられるわけです。
18
+
19
+
20
+
21
+ > \d+
22
+
23
+
24
+
25
+ これだとマッチする文字列は「100」となり、そこから末尾の1文字がスライスで捨てられて「10」になります。