Giter VIP home page Giter VIP logo

Comments (2)

veiset avatar veiset commented on September 4, 2024 1

Hey, no worries!

The logic I use to generate the regex is basically brute-forcing the shortest unique string (some Kotlin code):

fun shortestUnique(query: String, modifiers: List<String>): String {
    val cleanQuery = query.cleanInput()
    val mods = modifiers.filter { it != query }.joinToString(" ")
        .cleanInput()

    val resultWithSpace = subStrings(cleanQuery).firstOrNull {
        !mods.contains(it)
                && !it.contains(Regex("[|\\n\\\\+]"))
                && !it.endsWith(" ")
    }
    val resultWithoutSpace = subStrings(cleanQuery).firstOrNull {
        !mods.contains(it)
                && !it.contains(" ")
                && !it.contains("-")
                && !it.contains("|")
                && !it.contains("\\")
                && !it.contains("+")
                && !it.endsWith(" ")
    }
    val spaceLength = resultWithSpace?.length ?: 1000
    val nospaceLength = resultWithoutSpace?.length ?: 1000
    val regexResult = if (nospaceLength <= spaceLength + 2) resultWithoutSpace else "\"$resultWithSpace\""
    val finalResult = regexResult ?: query
    val finalWithoutNumbers = finalResult.replace("#", "\\\\d+")
    return if (finalWithoutNumbers.contains(" ") && !finalWithoutNumbers.startsWith("\"")) "\"$finalWithoutNumbers\"" else finalWithoutNumbers
}

For bestiary I use all the beasts (obviously), but also a list of rare names and beast types to generate the shortest regex!

from poe-vendor-string.

veiset avatar veiset commented on September 4, 2024

Closing the issue, but just comment in this thread if there are any more questions regarding this, or just create a new issue if there are any other questions. 😁

from poe-vendor-string.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.