我想根据字符对字符串进行分组。
例如。我想将以下网址分为两组
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
或数字