回答編集履歴
1
RegExp lookbehind (Google Chrome 62 先行実装)
test
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
### 否定先読み
|
2
|
+
|
3
|
+
|
4
|
+
|
1
5
|
URL構文の厳密性については一考の余地がありますが、とりあえずは否定先読みだけでも要件を満たせそうです。
|
2
6
|
|
3
7
|
|
@@ -14,4 +18,38 @@
|
|
14
18
|
|
15
19
|
|
16
20
|
|
21
|
+
### RegExp lookbehind (Google Chrome 62 先行実装)
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
Google Chrome 62 ではいわゆる、**戻り読み/後読み**の呼称で呼ばれる正規表現パターンが実装されているようです。
|
26
|
+
|
27
|
+
この機能は ECMAScript の仕様として提案されていますが、まだ未策定の段階にある為、先行実装の扱いとなります。
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
- [4545 - Implement RegExp lookbehind - v8 - Monorail](https://bugs.chromium.org/p/v8/issues/detail?id=4545&desc=2)
|
32
|
+
|
33
|
+
- [tc39/proposal-regexp-lookbehind: RegExp lookbehind assertions](https://github.com/tc39/proposal-regexp-lookbehind)
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
```JavaScript
|
38
|
+
|
39
|
+
console.log(/(?<=<)test/.test('<test>')); // true
|
40
|
+
|
41
|
+
console.log(/(?<=<)test/.test('(test)')); // false
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
console.log(/(?<!<)test/.test('<test>')); // false
|
46
|
+
|
47
|
+
console.log(/(?<!<)test/.test('(test)')); // true
|
48
|
+
|
49
|
+
```
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
|
54
|
+
|
17
55
|
Re: igar さん
|