kotlin 正则表达式查找最后一个匹配项[duplicate]

jljoyd4f  于 2022-12-13  发布在  Kotlin
关注(0)|答案(1)|浏览(153)

此问题在此处已有答案

(21个答案)
Regex to find text between second and third slashes(6个答案)
Regex: Substring the second last value between two slashes of a url string(4个答案)
5天前关闭。
我需要/s/之间的匹配项以及最后一个匹配项。
我期望得到:16000-wc-3
字符串:

I_p71tKYeMI/s16000-132/yWwCLcBGAsYHQ/s16000000/s16000-wc-3/EexXdUDWkAEbYXH.jpg

这是我的实际正则表达式:(?<=/s)(.+?)(?=/)
我的代码:

val regex = """(?<=\/s)(.*?)(?=\/)""".toRegex()
val rg = regex.find(string)!!.value

链接:https://regex101.com/r/U3Qcgf/4
我需要最后一个出现的正则表达式

nhhxz33t

nhhxz33t1#

您可以使用正则表达式并使用findall()和last()函数,如下所示

val regex = """(?<=\/s)(.*?)(?=\/)""".toRegex()
val string =
"I_p71tKYeMI/s16000-132/yWwCLcBGAsYHQ/s16000000/s16000-wc-3/EexXdUDWkAEbYXH.jpg"
val matches = regex.toRegex().findAll(string)
val lastMatch = matches.last()
println(lastMatch.value) // outputs "16000-wc-3"

相关问题