如何在scala中创建原始正则表达式?

时间:2013-12-03 13:18:53

标签: regex scala escaping

假设我有一个包含任何字符的字符串,但直到运行时我才知道。

val s: String = "/+*à&ç"

如何将此字符串转换为正则表达式,以便转义所有特殊字符?

目前,尝试此操作失败:

s.r.findFirstIn("What the /+*à&ç is this PatternSyntaxException?")

错误:

java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 2

而不是返回比赛。

1 个答案:

答案 0 :(得分:1)

可能有一个scala类型的方法,但是下面的java可以解决这个问题。

import java.util.regex.Pattern
Pattern.quote(s).r.findFirstIn("What the /+*à&ç is this PatternSyntaxException?")

返回

res1: Option[String] = Some(/+*à&ç)