[regex] Remove native-specific API

This commit is contained in:
Ilya Matveev
2018-11-22 13:39:21 +07:00
committed by Ilya Matveev
parent aa0f0f169d
commit 6cacbfbc36
2 changed files with 13 additions and 29 deletions
@@ -33,10 +33,12 @@ class PatternTest2 {
var testString = "foo123"
assertTrue(regex.matches(testString))
assertTrue(regex in testString)
assertTrue(regex.find(testString) != null)
testString = "fox"
assertFalse(regex.matches(testString))
assertFalse(regex in testString)
assertFalse(regex.find(testString) != null)
assertTrue(Regex("foo.*").matches("foo123"))
assertFalse(Regex("foo.*").matches("fox"))
+11 -29
View File
@@ -256,9 +256,17 @@ public actual class Regex internal constructor(internal val nativePattern: Patte
*
* @param replacement A replacement expression that can include substitutions.
*/
@Suppress("DEPRECATION_ERROR")
actual fun replaceFirst(input: CharSequence, replacement: String): String
= replaceFirst(input) { match -> processReplacement(match, replacement) }
actual fun replaceFirst(input: CharSequence, replacement: String): String {
val match = find(input) ?: return input.toString()
val length = input.length
val result = StringBuilder(length)
result.append(input, 0, match.range.start)
result.append(processReplacement(match, replacement))
if (match.range.endInclusive + 1 < length) {
result.append(input, match.range.endInclusive + 1, length)
}
return result.toString()
}
/**
* Splits the [input] CharSequence around matches of this regular expression.
@@ -296,30 +304,4 @@ public actual class Regex internal constructor(internal val nativePattern: Patte
* and may match strings differently.
*/
override fun toString(): String = nativePattern.toString()
// Native specific =================================================================================================
@Deprecated("The function is going to be removed from public API", level = DeprecationLevel.ERROR)
fun lookingAt(input: CharSequence): Boolean = doMatch(input, Mode.FIND) != null
/** Indicates whether the regular expression can find at least one match in the specified [input] starting with [index]. */
@Deprecated("The function is going to be removed from public API", level = DeprecationLevel.ERROR)
fun containsMatchIn(input: CharSequence, index: Int): Boolean = find(input, index) != null
/**
* Replaces the first occurrence of this regular expression in the specified [input] string with the result of calling
* the given function [transform] that takes a [MatchResult] representing the occurrence and returns a string to be used as a
* replacement for that occurrence.
*/
@Deprecated("The function is going to be removed from public API", level = DeprecationLevel.ERROR)
fun replaceFirst(input: CharSequence, transform: (MatchResult) -> CharSequence): String {
val match = find(input) ?: return input.toString()
val length = input.length
val result = StringBuilder(length)
result.append(input, 0, match.range.start)
result.append(transform(match))
if (match.range.endInclusive + 1 < length) {
result.append(input, match.range.endInclusive + 1, length)
}
return result.toString()
}
}