Вот код:Соответствие шаблону Regex не работает в scala.js?
val s =
"""
|\begin{bmatrix}
|\cos \theta & -\sin \theta \\
|\sin \theta & \cos \alpha
|\end{bmatrix}
""".stripMargin
val lastWordPattern = """(?s)(.*)\s+(.*)""".r
def wordToPos(string: String, position: Int): String = {
val subString = string.substring(0, position)
println("sub: ", subString)
subString match {
case lastWordPattern([email protected]_*) => {
println(0, x(0))
println(1, x(1))
x(0)
}
case _ => ""
}
}
wordToPos(s, 20)
Результат от sbt console
:
scala> wordToPos(s, 20)
(sub: ,
\begin{bmatrix}
\co)
(0,
\begin{bmatrix})
(1,\co)
Результат от хрома:
(sub: ,
\begin{bmatrix}
\co)
В хроме код печатает подстроку, но не совпадает с регулярным выражением , Я что-то не так?
Я думаю, что это потому, что JS не поддерживает '(? S)' модификатор. Попробуйте заменить все '.' на' [\ s \ S] 'и повторить попытку. –
Действительно, это решает проблему. – qed