我想根据字符对字符串进行分组。

例如。我想将以下网址分为两组

group 1 -   /viewarticle/abd-fdj-gfg-to
group2 - 628882 (last string)

/viewarticle/abd-fdj-gfg-to-628882

我尝试了这个“-(?!。*-)”,但是它不起作用。

我只需要使用正则表达式而不使用split函数。

任何帮助,将不胜感激。

最佳答案

您可以简单地使用()组和.*-捕获第一个输入,其余的作为第二个输入,因此请使用:

(.*-)([a-zA-Z\\d]+)

Demo
val regex = "(.*-)([a-zA-Z\\d]+)".toRegex() // use only (\\d+) for digits
val matchResults = regex.find("/viewarticle/abd-fdj-gfg-to-628882")!!
val (link, id) = matchResults.destructured
println("Link: $link \nID: $id")

细节:
.*-:匹配直到最后-的所有内容
[a-zA-Z\\d]+:匹配0个或更多字符a-zA-Z或数字

10-07 13:00
查看更多