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

回答編集履歴

6

2019/04/07 12:40

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -16,4 +16,19 @@
16
16
 
17
17
  といったような感じです。どれがマッチしたのかはキャプチャ結果で取れるので、それで何に置換するかを分岐します。
18
18
 
19
- もし最初の方針だと `%%%foo` にもマッチしなくなってしまうので、方針としてはこちらのほうが正しいです。
19
+ もし最初の方針だと `%%%foo` にもマッチしなくなってしまうので、方針としてはこちらのほうが正しいです。
20
+
21
+ ```js
22
+ "消費税率10%%%boldマジでつらい%endbold".replace(/(%%)|(%bold)|(%endbold)/g, (str, ...m) => {
23
+ if (m[0]) {
24
+ return '%'
25
+ }
26
+ if (m[1]) {
27
+ return '<b>'
28
+ }
29
+ if (m[2]) {
30
+ return '</b>'
31
+ }
32
+ return str
33
+ })
34
+ ```

5

追記の追記

2019/04/07 12:39

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -14,4 +14,6 @@
14
14
  /(%%)|(%foo)|(%bar)/
15
15
  ```
16
16
 
17
- といったような感じです。どれがマッチしたのかはキャプチャ結果で取れるので、それで何に置換するかを分岐します。
17
+ といったような感じです。どれがマッチしたのかはキャプチャ結果で取れるので、それで何に置換するかを分岐します。
18
+
19
+ もし最初の方針だと `%%%foo` にもマッチしなくなってしまうので、方針としてはこちらのほうが正しいです。

4

修正

2019/04/07 12:13

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  【追記】
10
10
 
11
- エスケープシーケンスを実装するのであれば、**「エスケープシーケンスのエスケープ表現に予めマッチさせる」**のが正解だと思います。例えば `%` をエスケープシーケンスにするのであれば
11
+ エスケープシーケンスを実装するのであれば、**「エスケープシーケンスのエスケープ表現に予めマッチさせる」**のが正解だと思います。例えば `%` をエスケープシーケンスにするのであれば
12
12
 
13
13
  ```
14
14
  /(%%)|(%foo)|(%bar)/

3

追記

2019/04/07 12:12

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  【追記】
10
10
 
11
- エスケープシーケンスを実装するのであれば、**「エスケープシーケンスに予めマッチさせる」**のが正解だと思います。例えば `%%` をエスケープシーケンスにするのであれば
11
+ エスケープシーケンスを実装するのであれば、**「エスケープシーケンスのエスケープ表現に予めマッチさせる」**のが正解だと思います。例えば `%%` をエスケープシーケンスにするのであれば
12
12
 
13
13
  ```
14
14
  /(%%)|(%foo)|(%bar)/

2

追記

2019/04/07 12:12

投稿

mpyw
mpyw

スコア5223

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

1

訂正

2019/04/07 12:11

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -2,4 +2,4 @@
2
2
  /(?<!&)&de/
3
3
  ```
4
4
 
5
- ですね。「否定戻り読み」と言います。ただし、使えるエンジンと使えないエンジンがあるので注意してください。JavaScript は無理ですね。
5
+ ですね。「否定戻り読み」と言います。ただし、使えるエンジンと使えないエンジンがあるので注意してください。Web ブラウザで動作する JavaScript は無理ですね。