Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 要作为正则表达式传递的转义字符串_Regex_Scala - Fatal编程技术网

Regex 要作为正则表达式传递的转义字符串

Regex 要作为正则表达式传递的转义字符串,regex,scala,Regex,Scala,我想创建一个函数来创建与输入端给定的任意字符串匹配的正则表达式。例如,当我向它馈送123$时,它应该与字符串末尾的“123$”匹配,而不是123 所以最后一个findAllIn应该在文本中找到\d+,但它没有。这里怎么了?您可以使用Java的模式类将字符串转义为正则表达式。看 例如: scala> Pattern.quote("123$").r.findFirstIn("123$") res3: Option[String] = Some(123$) 为了引起对Harold L上述评论的

我想创建一个函数来创建与输入端给定的任意字符串匹配的正则表达式。例如,当我向它馈送
123$
时,它应该与字符串末尾的
“123$”
匹配,而不是
123


所以最后一个
findAllIn
应该在文本中找到
\d+
,但它没有。这里怎么了?

您可以使用Java的模式类将字符串转义为正则表达式。看

例如:

scala> Pattern.quote("123$").r.findFirstIn("123$")
res3: Option[String] = Some(123$)

为了引起对Harold L上述评论的更多关注,如果您想使用Scala库执行此操作,可以使用:

import scala.util.matching.Regex
Regex.quote("123$").r.findFirstIn("123$")

您正在尝试在脚本中生成正则表达式吗?我不确定这个问题。在Java中,您需要使用另一个\来转义\例如匹配空格\\s。不确定scala语言。如果scala语言不包含
+
,它应该如何在
文本中找到
\d+
(语法上)。但是还是不行,谢谢!工作
def quote(x:String)=““\Q”+x+“\E”
scala.util.matching
中还有
Regex.quote
来做同样的事情。
import scala.util.matching.Regex
Regex.quote("123$").r.findFirstIn("123$")