All Downloads are FREE. Search and download functionalities are using the official Maven repository.

name.remal.escaping.kt Maven / Gradle / Ivy

package name.remal

import org.jetbrains.annotations.Contract

fun escapeRegex(string: String) = string
    .replace("\\", "\\\\")
    .replace(".", "\\.")
    .replace("[", "\\[")
    .replace("]", "\\]")
    .replace("(", "\\(")
    .replace(")", "\\)")
    .replace("?", "\\?")
    .replace("*", "\\*")
    .replace("+", "\\+")
    .replace("{", "\\{")
    .replace("}", "\\}")
    .replace("^", "\\^")
    .replace("\$", "\\\$")
    .replace("\n", "\\n")
    .replace("\r", "\\r")
    .replace("\t", "\\t")

@JvmName("escapeRegexNullable")
@Contract(value = "null->null; !null->!null", pure = true)
fun escapeRegex(string: String?) = if (string != null) escapeRegex(string) else null

fun escapeKotlin(string: String) = escapeJava(string).replace("\$", "\\\$")

@JvmName("escapeKotlinNullable")
@Contract(value = "null->null; !null->!null", pure = true)
fun escapeKotlin(string: String?) = if (string != null) escapeKotlin(string) else null




© 2015 - 2025 Weber Informatics LLC | Privacy Policy