回答編集履歴

6

2019/04/07 12:40

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -35,3 +35,33 @@
35
35
 
36
36
 
37
37
  もし最初の方針だと `%%%foo` にもマッチしなくなってしまうので、方針としてはこちらのほうが正しいです。
38
+
39
+
40
+
41
+ ```js
42
+
43
+ "消費税率10%%%boldマジでつらい%endbold".replace(/(%%)|(%bold)|(%endbold)/g, (str, ...m) => {
44
+
45
+ if (m[0]) {
46
+
47
+ return '%'
48
+
49
+ }
50
+
51
+ if (m[1]) {
52
+
53
+ return '<b>'
54
+
55
+ }
56
+
57
+ if (m[2]) {
58
+
59
+ return '</b>'
60
+
61
+ }
62
+
63
+ return str
64
+
65
+ })
66
+
67
+ ```

5

追記の追記

2019/04/07 12:39

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -31,3 +31,7 @@
31
31
 
32
32
 
33
33
  といったような感じです。どれがマッチしたのかはキャプチャ結果で取れるので、それで何に置換するかを分岐します。
34
+
35
+
36
+
37
+ もし最初の方針だと `%%%foo` にもマッチしなくなってしまうので、方針としてはこちらのほうが正しいです。

4

修正

2019/04/07 12:13

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
 
21
- エスケープシーケンスを実装するのであれば、**「エスケープシーケンスのエスケープ表現に予めマッチさせる」**のが正解だと思います。例えば `%` をエスケープシーケンスにするのであれば
21
+ エスケープシーケンスを実装するのであれば、**「エスケープシーケンスのエスケープ表現に予めマッチさせる」**のが正解だと思います。例えば `%` をエスケープシーケンスにするのであれば
22
22
 
23
23
 
24
24
 

3

追記

2019/04/07 12:12

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
 
21
- エスケープシーケンスを実装するのであれば、**「エスケープシーケンスに予めマッチさせる」**のが正解だと思います。例えば `%%` をエスケープシーケンスにするのであれば
21
+ エスケープシーケンスを実装するのであれば、**「エスケープシーケンスのエスケープ表現に予めマッチさせる」**のが正解だと思います。例えば `%%` をエスケープシーケンスにするのであれば
22
22
 
23
23
 
24
24
 

2

追記

2019/04/07 12:12

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -7,3 +7,27 @@
7
7
 
8
8
 
9
9
  ですね。「否定戻り読み」と言います。ただし、使えるエンジンと使えないエンジンがあるので注意してください。Web ブラウザで動作する JavaScript は無理ですね。
10
+
11
+
12
+
13
+ ----
14
+
15
+
16
+
17
+ 【追記】
18
+
19
+
20
+
21
+ エスケープシーケンスを実装するのであれば、**「エスケープシーケンスに予めマッチさせる」**のが正解だと思います。例えば `%%` をエスケープシーケンスにするのであれば
22
+
23
+
24
+
25
+ ```
26
+
27
+ /(%%)|(%foo)|(%bar)/
28
+
29
+ ```
30
+
31
+
32
+
33
+ といったような感じです。どれがマッチしたのかはキャプチャ結果で取れるので、それで何に置換するかを分岐します。

1

訂正

2019/04/07 12:11

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -6,4 +6,4 @@
6
6
 
7
7
 
8
8
 
9
- ですね。「否定戻り読み」と言います。ただし、使えるエンジンと使えないエンジンがあるので注意してください。JavaScript は無理ですね。
9
+ ですね。「否定戻り読み」と言います。ただし、使えるエンジンと使えないエンジンがあるので注意してください。Web ブラウザで動作する JavaScript は無理ですね。