回答編集履歴

1

修正

2021/09/24 02:08

投稿

Zuishin
Zuishin

スコア28669

test CHANGED
@@ -9,6 +9,12 @@
9
9
  これらは特定の「位置」にマッチする正規表現です。
10
10
 
11
11
  たとえば `(?=aaa)` は `aaa` の直前にマッチし、`(?<=aaa)` は `aaa` の直後にマッチします。
12
+
13
+
14
+
15
+ つまり `aaa(` の直後から `)` の直前までの `.*`(0 個以上の任意の文字) を検索すればいいわけですが、単純に `.*` と書いてしまうと、最長一致の法則によりたとえば `aaa(bbb) ccc(ddd)` であれば最後の閉じカッコの直前までの `bbb) ccc(ddd` にマッチしてしまいます。
16
+
17
+ これを防ぐために `.*` ではなく `.*?` あるいは `[^)]*` と書けば、最初の閉じカッコの直前までにマッチします。
12
18
 
13
19
 
14
20
 
@@ -24,4 +30,4 @@
24
30
 
25
31
 
26
32
 
27
- founds には配列が入るので、そのうち最初の要素を取り出したい時には上記のように `found[0]` を使います。
33
+ founds には配列が入るので、そのうち最初の要素を取り出したい時には上記のように `founds[0]` を使います。