我在尝试从以下位置检索值时遇到了正则表达式交替问题
..。我已经尝试了默认和
方法时初始化的状态。
方法。
使用的regex模式
具有示例文本的
,我想收到
因为
我已经把它放在了第一个交替的位置。
..。我搞不懂为什么我真的收到了
取而代之的是
它位于第二交替位置
..。
在查看了一系列涉及输入字符串中多个匹配的问题后,我没有找到任何该地址
如何处理交替,而不是将它们按正确的顺序放在一起
,我已经做到了。
我可以使用什么方法(如果有的话)来获取我想要的值
,或者返回两个值,每个值对应于它匹配的每个替换?
下面是我的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)发布于 2021-03-01 08:30:23
它返回
因为这是正则表达式引擎遍历字符串时遇到的第一个匹配。
在这种情况下,你可以通过消极的前瞻来得到你想要的东西。
"(1e|a1(?!e))".r
.findAllIn("a1e")
.toList
//res0: List[String] = List(1e)注意:
返回相同的结果。
https://stackoverflow.com/questions/66415179
复制相似问题