Comments (2)
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.
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)
- correction + suggestion HOT 3
- Suggest adding feature: regex for maps name HOT 6
- Suggestion for regex map, add rarity HOT 4
- Suggestion: Magic crafting section HOT 3
- Support for regex search on map modifiers (paste regex to highlight mods) HOT 6
- Flask "Gain # Charges" regex is wrong HOT 3
- reduced chance to block and less armor map mods got combined HOT 4
- [Beastcrafting] Incorrect regex for Elder-Blessed Retch HOT 3
- maps name bug HOT 1
- [Request] bestiary regex HOT 9
- Remove Yellow Beasts from Bestiary Regex HOT 4
- sextants - wrong regex
- More Optimized(?) Map Modifiers HOT 1
- Adding to the Heist Regex for valuable Heist targets HOT 1
- nne does not ONLY highlight movement speed on boots in act1
- Chemist's vs Alchemist's flask mod
- [Request] Gems
- Charged Compasses HOT 5
- Regex Bestiary is blank? or Just me? HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from poe-vendor-string.