teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

文言

2021/02/24 10:30

投稿

int32_t
int32_t

スコア21933

answer CHANGED
@@ -13,5 +13,5 @@
13
13
  pattern3 = r'.*[Category:(.*?)(?:\|.*)'
14
14
  ```
15
15
 
16
- 非キャプチャ括弧 `(?:)` かキャプチャ括弧かというのはこの質問中では重要ではありません。`findall()`の結果に入るかどうかという違いだけです。
16
+ 非キャプチャ括弧 `(?:)` かキャプチャ括弧かというのはこの質問中では重要ではありません。`findall()`の結果に入るかどうかという違いだけです。この場合 `(?:\|.*)`を `\|.*` にしても結果は同じです。
17
- 問題はその前の `.*?` です。できるだけ短くマッチする繰り返しなので、`pattern2`では後続の条件がないため常に0文字にマッチ、`pattern3`では後続の条件により `|` が出現するまでマッチします。
17
+ 問題はその前の `.*?` です。**できるだけ短くマッチする**繰り返しなので、`pattern2`では後続の条件がないため常に0文字にマッチ、`pattern3`では後続の条件により `|` が出現するまでマッチします。