Waqas Tahir
01/06/2022, 8:49 PMmatchesList
)
Code With Pattern Class
val matcher = pattern.matcher(string)
val matchesList = mutableListOf<String>()
while (matcher.find()) {
matchesList.add(matcher.group(0))
if (!isGlobal) {
var i : Int = 1
val iEnd : Int = matcher.groupCount()
while (i <= iEnd) {
matchesList.add(matcher.group(i))
i++
}
}
}
return matchesList
Code With Regex Class (not working)
var result : MatchResult? = regex.matchEntire(string) ?: return mutableListOf()
val matchesList = mutableListOf<String>()
while(result!=null){
result.groups[0]?.value?.let { matchesList.add(it) }
if(!isGlobal){
var i = 1
while(i <= result.groups.size){
result.groups[i]?.value?.let { matchesList.add(it) }
i++
}
}
result = result.next()
}
return matchesList
ephemient
01/06/2022, 9:00 PMmatchEntire
!= matcher.find
ephemient
01/06/2022, 9:01 PMRegex.find
similar to the Java code, or better yet, simply
for (matchResult in regex.findAll(string)) {
...
}
Waqas Tahir
01/06/2022, 9:24 PMval myMatchesList = mutableListOf<String>()
var startIndex = 0
var matchResult = regex.find(string,startIndex)
while(matchResult!=null){
var i = 1
while(i<=matchResult.groups.size) {
matchResult.groups[0]?.value?.let { myMatchesList.add(it) }
if(!isGlobal){
matchResult.groups[i]?.value?.let { myMatchesList.add(it) }
}
i++
}
startIndex = matchResult.range.last
matchResult = regex.find(string,startIndex)
}
Waqas Tahir
01/06/2022, 9:30 PMephemient
01/06/2022, 9:35 PMval myMatchesList = regex.findAll(string).flatMap { if (isGlobal) listOf(it.value) else it.groupValues }.toList()
or something similar (not sure why you're adding groups[0] repeatedly)Waqas Tahir
01/06/2022, 9:46 PMWaqas Tahir
01/06/2022, 9:46 PMWaqas Tahir
01/06/2022, 9:46 PMephemient
01/06/2022, 9:50 PMappend*
? in kotlin you'd just use Regex.replace
normally