$不在Scala中的正则表达式中工作
使用$不在Scala中的正则表达式中工作,scala,Scala,使用$匹配从字符串末尾开始的表达式(与从字符串开头匹配的^相反),对吗 ^工作正常 scala> val reg = "^(abc)".r reg: scala.util.matching.Regex = ^(abc) scala> reg findFirstIn "hello abc hanu" res44: Option[String] = None scala> reg findFirstIn "abc hello abc hanu" res45: Option[St
$
匹配从字符串末尾开始的表达式(与从字符串开头匹配的^
相反),对吗
^
工作正常
scala> val reg = "^(abc)".r
reg: scala.util.matching.Regex = ^(abc)
scala> reg findFirstIn "hello abc hanu"
res44: Option[String] = None
scala> reg findFirstIn "abc hello abc hanu"
res45: Option[String] = Some(abc)
但是,$
不是
scala> val reg = "$(abc)".r
reg: scala.util.matching.Regex = $(abc)
scala> reg findFirstIn "abc hello abc hanu"
res46: Option[String] = None
scala> reg findFirstIn "abc hello abc hanu abc"
res47: Option[String] = None
为什么?
$
匹配输入的结尾,因此$(abc)
表示转到输入的结尾,然后在结尾后查找abc
。这显然与任何东西都不匹配
你的意思是在结尾之前(而不是之后)查找(abc)$
吗