回答編集履歴

3

Javascriptのコードに変更

2021/09/05 04:38

投稿

Daregada
Daregada

スコア11990

test CHANGED
@@ -2,29 +2,49 @@
2
2
 
3
3
 
4
4
 
5
- ```Python
5
+ 以下、元はPythonのコードをJavascriptに変更し、動的に生成される文字列AとBに対応。
6
-
7
- import re
8
6
 
9
7
 
10
8
 
11
- target = "梨ね。特に山梨県の梨はみずみずしくて美味い。山梨の梨は梨の王様や!! (梨県さん)"
9
+ ```Javascript
12
10
 
13
- pat1 = re.compile(r'(?<!)|梨(?!県)')
11
+ let target = "梨ね。特に山梨県のはみずみずしくて美味い。山梨の梨は梨の王様や!! (さん)";
14
12
 
15
- pat2 = re.compile(r'(?<!)(?!)')
13
+ //let target = '山梨県 山梨 梨県 梨梨梨梨\n梨';
14
+
15
+ let src = "梨";
16
+
17
+ let dst = "りんご";
18
+
19
+ let exc = "山梨県";
16
20
 
17
21
 
18
22
 
19
- result1 = pat1.sub('りんご', target)
23
+ let pre = exc.substr(0, exc.indexOf(src));
20
24
 
21
- print(result1)
25
+ let post = exc.substr(exc.indexOf(src) + src.length);
22
26
 
23
27
 
24
28
 
25
- result2 = pat2.sub('りんご', target)
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
- print(result2)
47
+ console.log(result2);
28
48
 
29
49
  ```
30
50
 

2

表現を修正

2021/09/05 04:38

投稿

Daregada
Daregada

スコア11990

test CHANGED
@@ -1,4 +1,4 @@
1
- もし、「山梨」「梨県」に対して置換を行なうのであれば、`(?<!山)梨|梨(?!県)`とします。いっぽう、「山梨」と「梨県」置換から除外するのであれば、(他の回答者の回答にあるように)`(?<!山)梨(?!県)`とします。
1
+ もし、「山梨」「梨県」に対して置換を行なうのであれば、`(?<!山)梨|梨(?!県)`とします。いっぽう、「山梨」と「梨県」置換対象から除外するのであれば、(他の回答者の回答にあるように)`(?<!山)梨(?!県)`とします。
2
2
 
3
3
 
4
4
 

1

補足を追加

2021/09/05 01:31

投稿

Daregada
Daregada

スコア11990

test CHANGED
@@ -1,4 +1,4 @@
1
- もし、「山梨」や「梨県」に対しては置換を行なうのであれば、`(?<!山)梨|梨(?!県)`とします。
1
+ もし、「山梨」や「梨県」に対しては置換を行なうのであれば、`(?<!山)梨|梨(?!県)`とします。いっぽう、「山梨」と「梨県」も置換から除外するのであれば、(他の回答者の回答にあるように)`(?<!山)梨(?!県)`とします。
2
2
 
3
3
 
4
4