假设我有一个包含任何字符的字符串,但直到运行时我才知道。
val s: String = "/+*à&ç"
如何将此字符串转换为正则表达式,以便转义所有特殊字符?
目前,尝试此操作失败:
s.r.findFirstIn("What the /+*à&ç is this PatternSyntaxException?")
错误:
java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 2
而不是返回比赛。
答案 0 :(得分:1)
可能有一个scala类型的方法,但是下面的java可以解决这个问题。
import java.util.regex.Pattern
Pattern.quote(s).r.findFirstIn("What the /+*à&ç is this PatternSyntaxException?")
返回
res1: Option[String] = Some(/+*à&ç)