我正在尝试更换任何" ||"在"∨"的字符串中使用以下代码:
var s = f.replace(new RegExp("||", "g"), "∨");
然而,当f =" A→(A→A)"
时会发生以下情况f = "∨A∨→∨(∨A∨→∨A∨)∨
我试图以尽可能多的方式逃避,但我认为这是因为双垂直条形结构导致了我的问题。
答案 0 :(得分:1)
要将所有||
替换为v
,请尝试以下操作:
var s = f.replace(/\|\|/g, "∨");
给定输入: f = "A||→(A||→A)";
将输出: A∨→(A∨→A)
答案 1 :(得分:0)
|
代表OR
,因此您的正则表达式||
匹配空字符串''
(''|''|'')
。您应该使用\|\|
代替。
|A|→|(|A|→|A|)|
^ ^ ^ ^ ^ ^ ^ ^ <= matches empty string '' between chars
∨A∨→∨(∨A∨→∨A∨)∨
var wrong = 'A→(A→A)'.replace(new RegExp(/||/, "g"), 'v')
var right = 'A||A||A'.replace(new RegExp(/\|\|/, "g"), 'v')
console.log(right, wrong)
&#13;