回答編集履歴

1

追記

2017/12/19 16:47

投稿

KojiDoi
KojiDoi

スコア13671

test CHANGED
@@ -1,3 +1,103 @@
1
1
  "正規表現 展開"でググったらすぐにこんなの見つかりましたが。
2
2
 
3
3
  https://qiita.com/ohkawa/items/368e6bcadc56a118adaf
4
+
5
+
6
+
7
+ 追記
8
+
9
+ 実際に使ってみました。
10
+
11
+
12
+
13
+ ```python
14
+
15
+ #!/usr/bin/python
16
+
17
+ # -*- coding: utf-8 -*-
18
+
19
+
20
+
21
+ import sre_yield
22
+
23
+ if __name__ == '__main__':
24
+
25
+ for regex in [
26
+
27
+ '[abc]x',
28
+
29
+ '(あ|い|う)x',
30
+
31
+ '(あいう)?x',
32
+
33
+ '[あいう]x'
34
+
35
+ ]:
36
+
37
+ urllist = list(sre_yield.AllStrings(regex))
38
+
39
+ print("TEST " + regex)
40
+
41
+ for i in range(len(urllist)):
42
+
43
+ print(urllist[i])
44
+
45
+ ```
46
+
47
+
48
+
49
+ ubuntu 14.04/python 2.7.6で試してみた結果は以下のとおり。
50
+
51
+ ```
52
+
53
+ TEST [abc]x
54
+
55
+ ax
56
+
57
+ bx
58
+
59
+ cx
60
+
61
+ TEST (あ|い|う)x
62
+
63
+ あx
64
+
65
+ いx
66
+
67
+ うx
68
+
69
+ TEST (あいう)?x
70
+
71
+ x
72
+
73
+ あいうx
74
+
75
+ TEST [あいう]x
76
+
77
+ �x
78
+
79
+ �x
80
+
81
+ �x
82
+
83
+ �x
84
+
85
+ �x
86
+
87
+ �x
88
+
89
+ �x
90
+
91
+ �x
92
+
93
+ �x
94
+
95
+ ```
96
+
97
+
98
+
99
+ どうもutfへの対応が不完全ぽいですね。
100
+
101
+ □な中にいわゆる全角文字を置くとおかしくなるようです。
102
+
103
+ またprint(urllist[0])だとokなのがprint(urllist)ではひらがなが表示されないとか、不思議な事が起こります。 pythonのutf8の扱いは私にとって謎が多いです。