回答編集履歴
5
成形
test
CHANGED
@@ -20,9 +20,7 @@
|
|
20
20
|
|
21
21
|
|
22
22
|
|
23
|
-
途中から探索したい場合はre.searchを、
|
24
|
-
|
25
|
-
常に文字列全体とマッチしたい場合はre.fullmatchを使えます。
|
23
|
+
途中から探索したい場合はre.searchを、常に文字列全体とマッチしたい場合はre.fullmatchを使えます。
|
26
24
|
|
27
25
|
ただし今回の場合どれを選んでも結果は同じです。
|
28
26
|
|
4
追記
test
CHANGED
@@ -5,6 +5,26 @@
|
|
5
5
|
> #####Match.groups(default=None)
|
6
6
|
|
7
7
|
このマッチの、1 からパターン中のグループ数まで、全ての**サブグループ**を含むタプルを返します。
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
---
|
12
|
+
|
13
|
+
> 私が考えた結果は ('24.1', '24.1632' , '4.1', '4.163', ...)
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
matchは先頭から探索します。ですので、4から始まることはあり得ません。
|
18
|
+
|
19
|
+
またできるだけ長くマッチしようとするので、小数点以下が途中で打ち切られることもありません。
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
途中から探索したい場合はre.searchを、
|
24
|
+
|
25
|
+
常に文字列全体とマッチしたい場合はre.fullmatchを使えます。
|
26
|
+
|
27
|
+
ただし今回の場合どれを選んでも結果は同じです。
|
8
28
|
|
9
29
|
|
10
30
|
|
3
追記
test
CHANGED
@@ -11,3 +11,27 @@
|
|
11
11
|
---
|
12
12
|
|
13
13
|
なお m.group(0) とでもすれば、マッチした文字列全体が得られます。
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
```Python
|
18
|
+
|
19
|
+
>>> pattern = re.compile(r'(\d+).(\d+)')
|
20
|
+
|
21
|
+
>>>
|
22
|
+
|
23
|
+
>>> m = pattern.match(r'24.1632')
|
24
|
+
|
25
|
+
>>> for i in range(pattern.groups+1):
|
26
|
+
|
27
|
+
... print(i, m.group(i))
|
28
|
+
|
29
|
+
...
|
30
|
+
|
31
|
+
0 24.1632
|
32
|
+
|
33
|
+
1 24
|
34
|
+
|
35
|
+
2 1632
|
36
|
+
|
37
|
+
```
|
2
追記
test
CHANGED
@@ -1,3 +1,13 @@
|
|
1
1
|
本来なら \d+.\d+ で充分なところ、 () でキャプチャを取っているからです。
|
2
2
|
|
3
|
+
このことはご参照のリファレンスにも、また違った表現で書いてありますね。
|
4
|
+
|
5
|
+
> #####Match.groups(default=None)
|
6
|
+
|
7
|
+
このマッチの、1 からパターン中のグループ数まで、全ての**サブグループ**を含むタプルを返します。
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
---
|
12
|
+
|
3
13
|
なお m.group(0) とでもすれば、マッチした文字列全体が得られます。
|
1
追記
test
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
() でキャプチャを取っているからです。
|
1
|
+
本来なら \d+.\d+ で充分なところ、 () でキャプチャを取っているからです。
|
2
2
|
|
3
|
-
m.group(0) とでもすれば、マッチした文字列全体が得られます。
|
3
|
+
なお m.group(0) とでもすれば、マッチした文字列全体が得られます。
|