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