回答編集履歴

3

修正

2020/02/25 23:29

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -54,7 +54,7 @@
54
54
 
55
55
 
56
56
 
57
- このとき論理和は数値の加算と同じです。
57
+ このとき~~論理和~~ビット和は数値の加算と同じです。
58
58
 
59
59
  各要素の値は2進表記したとき桁が被らないよう選ばれているので、一意に分解できます。
60
60
 

2

追記

2020/02/25 23:29

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -56,11 +56,15 @@
56
56
 
57
57
  このとき論理和は数値の加算と同じです。
58
58
 
59
- 各要素の値は桁が被らないよう選ばれているので、一意に分解できます。
59
+ 各要素の値は2進表記したとき桁が被らないよう選ばれているので、一意に分解できます。
60
60
 
61
61
  ```Python
62
62
 
63
63
  >>> f'{re.ASCII + re.DOTALL:b}'
64
+
65
+ '100010000'
66
+
67
+ >>> f'{re.ASCII | re.DOTALL:b}'
64
68
 
65
69
  '100010000'
66
70
 
@@ -76,7 +80,7 @@
76
80
 
77
81
  前述したとおり、都合が良いからです。
78
82
 
79
- またビットフラグはから用いられているので、別の記号を用いると混乱を招きます。
83
+ またビットフラグはく用いられているので、別の記号を用いると混乱を招きます。
80
84
 
81
85
 
82
86
 

1

追記

2020/02/25 11:34

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -65,3 +65,47 @@
65
65
  '100010000'
66
66
 
67
67
  ```
68
+
69
+
70
+
71
+ ---
72
+
73
+ > なぜ&でなくて|なのでしょうか。
74
+
75
+
76
+
77
+ 前述したとおり、都合が良いからです。
78
+
79
+ またビットフラグは古くから用いられているので、別の記号を用いると混乱を招きます。
80
+
81
+
82
+
83
+ > 新しい記法ではどのように書くのが好ましいのでしょうか?
84
+
85
+
86
+
87
+ ビットフラグではなく、キーワード引数として提供されるのを想定しているのではないでしょうか。
88
+
89
+ ```Python
90
+
91
+ re.compile(r'h..e', ignore_case=True, dot_all=True) # 註:実際にはこのように書けません。
92
+
93
+ ```
94
+
95
+
96
+
97
+ あるいはこのように正規表現文字列の中にフラグを埋め込むことができます。
98
+
99
+ ```Python
100
+
101
+ re.compile(r'h..e', re.IGNORECASE | re.DOTALL) # これと
102
+
103
+ re.compile(r'(?is)h..e') # これは同じ
104
+
105
+ ```
106
+
107
+
108
+
109
+ ただこれはこれで読みづらく浸透していない(ような気がする)ので、
110
+
111
+ ビットフラグを用いた、つまり古い書き方を引き続き用いても良いように思います。