gpt4 book ai didi

regex - 使用匹配器 : java. lang.IllegalStateException 提取子字符串:未找到匹配项

转载 作者:行者123 更新时间:2023-12-04 08:48:05 24 4
gpt4 key购买 nike

我正在尝试使用正则表达式从给定字符串中提取子字符串。我在 Scala 中这样做:

val pattern = Pattern.compile("(Word)+")
val matcher = pattern.matcher("WordWordRestOfString")
matcher.group(1)
所需的输出是“WordWord”,但是,我不断收到 IllegalStateException。
我以前没有真正使用过 Regex,也无法完全掌握 matcher.group 方法的工作原理,但我看到了建议使用 matcher.group(1) 的问题的答案。

最佳答案

首先,重复捕获组只将最后捕获的值保存在组内存缓冲区中,所以你得到Word也就不足为奇了。作为第 1 组值。见 Repeating a Capturing Group vs. Capturing a Repeated Group .
其次,您实际上并没有调用匹配器 .find.matches实际触发正则表达式搜索的方法。
第三,您不需要在此处获取 Group 1 值,您只需要获取完整匹配:

val s = "WordWordRestOfStringWordWordWord"
val pattern = "(Word)+".r
// Single result:
val result = pattern.findFirstMatchIn(s).get
println(result) // => WordWord
// Multiple results:
val multiple_results = pattern.findAllMatchIn(s)
println(multiple_results.mkString(", ")) // => WordWord, WordWordWord
Scala demo

关于regex - 使用匹配器 : java. lang.IllegalStateException 提取子字符串:未找到匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64212260/

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