回答編集履歴

2

修正

2018/10/05 07:54

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -2,30 +2,44 @@
2
2
 
3
3
  ```Python
4
4
 
5
- >>> import re
5
+ import re
6
6
 
7
- >>>
8
7
 
9
- >>> srcs = '80kg 65kg 72kg 69kg 100kg'.split()
10
8
 
11
- >>> for src in srcs:
9
+ srcs = '80kg 65.5kg 72W 69km 100t'.split()
12
10
 
13
- ... m = re.search(r'(\d+)', src)
11
+ for src in srcs:
14
12
 
15
- ... assert m
13
+ m = re.match(r'^([\d.]+)(\D+)$', src)
16
14
 
17
- ... print(src, int(m.group(1)))
15
+ assert m
18
16
 
19
- ...
17
+
20
18
 
21
- 80kg 80
19
+ value, unit = float(m.group(1)), m.group(2)
22
20
 
23
- 65kg 65
21
+ print(
24
22
 
25
- 72kg 72
23
+ f'{src} -> "{value}", "{unit}"'
26
24
 
27
- 69kg 69
25
+ )
28
-
29
- 100kg 100
30
26
 
31
27
  ```
28
+
29
+
30
+
31
+ **実行結果** [Wandbox](https://wandbox.org/permlink/JLt3qf04LdJF7NlA)
32
+
33
+ ```
34
+
35
+ 80kg -> "80.0", "kg"
36
+
37
+ 65.5kg -> "65.5", "kg"
38
+
39
+ 72W -> "72.0", "W"
40
+
41
+ 69km -> "69.0", "km"
42
+
43
+ 100t -> "100.0", "t"
44
+
45
+ ```

1

修正

2018/10/05 07:54

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -10,9 +10,11 @@
10
10
 
11
11
  >>> for src in srcs:
12
12
 
13
- ... dst = re.match(r'^(\d+)kg$', src).group(1)
13
+ ... m = re.search(r'(\d+)', src)
14
14
 
15
+ ... assert m
16
+
15
- ... print(src, dst)
17
+ ... print(src, int(m.group(1)))
16
18
 
17
19
  ...
18
20