Regex 替换包含括号的字符串

Regex 替换包含括号的字符串,regex,scala,Regex,Scala,在此字符串中: val s = "pow(10,3) + pow(10,3) + pow(10,3)" 我需要换一个 pow(10,3) 与 所以最终的结果是 1000 + 1000 + 1000 我试过了 s.replaceAll("pow(10,3)", "1000") 但是,这不起作用,因为第一个参数是正则表达式,括号表示一个组。上面的陈述实际上并不能取代任何东西。有什么想法吗?你需要用\避开(和),否则它会被视为一组 var re=/pow\(10,3\)/g; var-str

在此字符串中:

val s = "pow(10,3) + pow(10,3) + pow(10,3)"
我需要换一个

pow(10,3)

所以最终的结果是

1000 + 1000 + 1000
我试过了

s.replaceAll("pow(10,3)", "1000")
但是,这不起作用,因为第一个参数是正则表达式,括号表示一个组。上面的陈述实际上并不能取代任何东西。有什么想法吗?

你需要用
\
避开
,否则它会被视为一组

var re=/pow\(10,3\)/g;
var-str='pow(10,3)+pow(10,3)+pow(10,3)';
var subst='1000';
var结果=str.replace(re,subst);
控制台日志(结果)您需要使用
\
来转义
,否则它将被视为组

var re=/pow\(10,3\)/g;
var-str='pow(10,3)+pow(10,3)+pow(10,3)';
var subst='1000';
var结果=str.replace(re,subst);

控制台日志(结果)您可以用反斜杠转义括号,以便将其视为另一个字符:

"""pow\(10,3\)"""

可以使用反斜杠转义括号,以便将其视为另一个字符:

"""pow\(10,3\)"""

尝试使用
replaceAllvertical
,它接受
String literal
作为输入

val str = "pow(10,3) + pow(10,3) + pow(10,3)";
println(str.replaceAllLiterally("pow(10,3)", "1000"));

尝试使用
replaceAllvertical
,它接受
String literal
作为输入

val str = "pow(10,3) + pow(10,3) + pow(10,3)";
println(str.replaceAllLiterally("pow(10,3)", "1000"));

要替换文字字符串,请不要使用
replaceAll
,而要使用
replace

见:

如果需要使用
replaceAll
,则文字括号必须用双反斜杠转义:

s.replaceAll("pow\\(10,3\\)", "1000")
或者,使用三重引号字符串文字并使用单个反斜杠转义特殊的正则表达式元字符:

s.replaceAll("""pow\(10,3\)""", "1000")
见和

无论是
replaceAll
还是
replace
都将替换多次出现的内容

在替换
旁边,您可以使用


另请参见

要替换文字字符串,请不要使用
replaceAll
,使用
replace

见:

如果需要使用
replaceAll
,则文字括号必须用双反斜杠转义:

s.replaceAll("pow\\(10,3\\)", "1000")
或者,使用三重引号字符串文字并使用单个反斜杠转义特殊的正则表达式元字符:

s.replaceAll("""pow\(10,3\)""", "1000")
见和

无论是
replaceAll
还是
replace
都将替换多次出现的内容

在替换
旁边,您可以使用



另请参见使用:pow\(10,3\),因为括号是grouptryed
s.replace(“pow(10,3)”,“1000”)
?@WiktorStribiżew不是字符串替换,仅使用字符?
replace
替换文字字符串。看
replaceAll
使用正则表达式模式搜索要替换的字符串。您实际需要什么?使用:pow\(10,3\),因为括号是grouptry
s.replace(“pow(10,3)”,“1000”)
?@WiktorStribiżew不是字符串替换,仅使用字符?
replace
替换文字字符串。看
replaceAll
使用正则表达式模式搜索要替换的字符串。你到底需要什么?我需要用scala,而不是javascriptI,我需要用scala,而不是javascriptI,这是scala还是javascript?这是一个正则表达式,在你的代码中它看起来像:
s.replaceAll(“pow\(10,3\),“1000”)
如何将字符串
pow(10,3)
转换成
pow\(10,3\)
在scala中?我不太明白你的问题,只需将replaceAll中的字符串更改为带有反斜杠的字符串。我不知道如何更改它,因为它带有括号。这是代码中的一个变量。这是scala还是javascript?这是一个正则表达式,在您的代码中它看起来像:
s.replaceAll(“pow\(10,3\),“1000”)
如何在scala中将字符串
pow(10,3)
转换为
pow\(10,3\)
?我不太明白您的问题,只需将replaceAll中的字符串更改为带有反斜杠的字符串我不知道如何更改它,因为它有括号。这是代码中的一个变量。只是出于好奇,我不明白为什么你需要双反斜杠括号,这是一个Scala的东西?好的,你不必总是这样。如果使用三重引号字符串文字,则可以使用单个反斜杠-。关键是双引号字符串文字可以有转义序列,如
\n
,因此反斜杠写为
“\\”
,我们需要一个文字反斜杠来转义正则表达式元字符。只是出于好奇,我不明白为什么需要双反斜杠括号,这是Scala的事情?好的,你不必总是这样。如果使用三重引号字符串文字,则可以使用单个反斜杠-。关键是双引号字符串文字可以有转义序列,如
\n
,因此反斜杠写为
“\\”
,我们需要一个文字反斜杠来转义regex元字符。