我想用一个空格字符替换所有连续的下划线。我可以使用以下 javascript 代码执行此操作。但是我无法使用 scala 这样做。下面是我的 javascript 代码。
var name = "cust_id";
var newName = name.replace(/[\W_]+/g, " ");
console.log(newName);
下面给出了我的scala代码
val regex: Regex = new Regex("/[\W_]+/g")
val name: String = "cust_id"
val newName: String = regex.replaceAllIn(name, " ")
println(newName)
我收到以下错误。
无效的转义字符
我做错了什么?
答案 0 :(得分:2)
在Scala中,与在Java中一样,单个反斜杠是(标准)字符串文字中的转义字符,因此您需要将其加倍以在字符串中放置实际反斜杠以用于初始化正则表达式:
val regex: Regex = new Regex("/[\\W_]+/g")
或者,你可以三重引用'字符串,以防止通常的转义行为:
val regex: Regex = new Regex("""/[\W_]+/g""")