尝试从中检索值时遇到了正则表达式替换问题scala.util.matching.Regex
。我在使用该方法时尝试了默认状态和unanchored
初始化状态。findAllMatchIn
使用(1e)|(a1)
带有示例文本的 regex 模式a1e
,我希望收到1e
,因为我已将其放置在第一个交替位置。我很困惑为什么我实际上收到的是第二个a1
交替位置的值。
在查看了处理跨输入字符串的多个匹配项的许多问题之后,除了将它们按正确的顺序放置之外,我还没有找到任何解决如何处理交替的问题,我已经这样做了。
如果有的话,我可以使用什么方法来取回我想要的值1e
,或者返回两个值,一个用于匹配的每个交替?
下面是我的 IntelliJ Scala 工作表中的代码示例(这里是 Scastie 中的代码):
import scala.util.matching.Regex
val regexStringLongOrLat: String =
"""(1e)|(a1)"""
val regexLongOrLat: Regex = regexStringLongOrLat.r.unanchored
val sample =
"a1e"
val test2 =
regexLongOrLat
.findAllMatchIn(sample)
.toList
println(test2) //This should return List(1e)