gpt4 book ai didi

正则表达式模式匹配在 scala.js 中不起作用?

转载 作者:行者123 更新时间:2023-12-01 08:49:56 27 4
gpt4 key购买 nike

代码如下:

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(x@_*) => {
println(0, x(0))
println(1, x(1))
x(0)
}
case _ => ""
}
}
wordToPos(s, 20)

sbt 控制台的结果:

scala>     wordToPos(s, 20)
(sub: ,
\begin{bmatrix}
\co)
(0,
\begin{bmatrix})
(1,\co)

来自 chrome 的结果:

(sub: ,
\begin{bmatrix}
\co)

在 chrome 中,代码打印子字符串,但无法匹配正则表达式。我做错了什么吗?

最佳答案

由于 JavaScript 不支持单行修饰符(既不是内联修饰符,也不是常规修饰符),因此您需要将字符类之外的每个 . 替换为 [\s\S](具有与字符串中可以出现的任何符号匹配的相反简写类的字符类)。

使用 [\s\S],您将匹配包括换行符在内的任何符号,而无需指定单行模式。

val lastWordPattern = """([\s\S]*)\s+([\s\S]*)""".r

关于正则表达式模式匹配在 scala.js 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33584249/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com