回答編集履歴
3
Javascriptのコードに変更
test
CHANGED
@@ -2,29 +2,49 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
|
5
|
+
以下、元はPythonのコードをJavascriptに変更し、動的に生成される文字列AとBに対応。
|
6
|
-
|
7
|
-
import re
|
8
6
|
|
9
7
|
|
10
8
|
|
11
|
-
|
9
|
+
```Javascript
|
12
10
|
|
13
|
-
|
11
|
+
let target = "梨ね。特に山梨県の梨はみずみずしくて美味い。山梨の梨は梨の王様や!! (梨県さん)";
|
14
12
|
|
15
|
-
|
13
|
+
//let target = '梨 山梨県 山梨 梨県 梨梨梨梨\n梨';
|
14
|
+
|
15
|
+
let src = "梨";
|
16
|
+
|
17
|
+
let dst = "りんご";
|
18
|
+
|
19
|
+
let exc = "山梨県";
|
16
20
|
|
17
21
|
|
18
22
|
|
19
|
-
|
23
|
+
let pre = exc.substr(0, exc.indexOf(src));
|
20
24
|
|
21
|
-
prin
|
25
|
+
let post = exc.substr(exc.indexOf(src) + src.length);
|
22
26
|
|
23
27
|
|
24
28
|
|
25
|
-
|
29
|
+
// let pat1 = /(?<!山)梨|梨(?!県)/g;
|
26
30
|
|
31
|
+
let pat1 = new RegExp("(?<!" + pre + ")" + src + "|" + src + "(?!" + post + ")", "g");
|
32
|
+
|
33
|
+
// let pat2 = /(?<!山)梨(?!県)/g;
|
34
|
+
|
35
|
+
let pat2 = new RegExp("(?<!" + pre + ")" + src + "(?!" + post + ")", "g");
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
result1 = target.replace(pat1, dst);
|
40
|
+
|
41
|
+
console.log(result1);
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
result2 = target.replace(pat2, dst);
|
46
|
+
|
27
|
-
|
47
|
+
console.log(result2);
|
28
48
|
|
29
49
|
```
|
30
50
|
|
2
表現を修正
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
もし、「山梨」
|
1
|
+
もし、「山梨」と「梨県」に対しても置換を行なうのであれば、`(?<!山)梨|梨(?!県)`とします。いっぽう、「山梨」と「梨県」を置換対象から除外するのであれば、(他の回答者の回答にあるように)`(?<!山)梨(?!県)`とします。
|
2
2
|
|
3
3
|
|
4
4
|
|
1
補足を追加
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
もし、「山梨」や「梨県」に対しては置換を行なうのであれば、`(?<!山)梨|梨(?!県)`とします。
|
1
|
+
もし、「山梨」や「梨県」に対しては置換を行なうのであれば、`(?<!山)梨|梨(?!県)`とします。いっぽう、「山梨」と「梨県」も置換から除外するのであれば、(他の回答者の回答にあるように)`(?<!山)梨(?!県)`とします。
|
2
2
|
|
3
3
|
|
4
4
|
|