我得到一個奇怪的錯誤,下面的代碼。字符串插值奇怪的錯誤
我有一個類Example
,有一個伴侶對象,其中我定義了一個字符串SIGN
。在類Example
我有一個方法,我創建一個正則表達式,我使用字符串插值,以便我可以使用SIGN
來建立我的正則表達式。
這編譯,但我在運行時得到一個奇怪的錯誤。這是一個斯卡拉錯誤?我正在使用Scala 2.10.3(在Windows 7上)。
scala> :paste
// Entering paste mode (ctrl-D to finish)
class Example {
import Example._
def regex = s"""$SIGN?\d+""".r
}
object Example {
private val SIGN = """(\+|-)"""
}
// Exiting paste mode, now interpreting.
defined class Example
defined module Example
scala> val e = new Example
e: Example = [email protected]
scala> e.regex
scala.StringContext$InvalidEscapeException: invalid escape character at index 1 in "?\d+"
at scala.StringContext$.treatEscapes(StringContext.scala:229)
at scala.StringContext$$anonfun$s$1.apply(StringContext.scala:90)
at scala.StringContext$$anonfun$s$1.apply(StringContext.scala:90)
at scala.StringContext.standardInterpolator(StringContext.scala:123)
at scala.StringContext.s(StringContext.scala:90)
at Example.regex(<console>:9)
@ raina77ow這也行不通,我得到同樣的例外。 – Jesper
看起來你看到[本期]的某個版本(https://issues.scala-lang.org/browse/SI-6476),也許?簡單的舊的「$ SIGN?\\ d +」。r'應該可以正常工作。 –
是的,它適用於\\\'。 – raina77ow