Announcing list2regexp - Generate regular expressions to match lists of strings
Codeberg.org
list2regexp
Not much substance to their argument, mostly just whining. Funny website, though.
The term’s connection with racism, as well as the value in avoiding its use has been disputed.
en.wikipedia.org/wiki/Blacklist_(computing)#Contr…
(See the section that follows for more context.)
Being pretty or short is not a goal of this project, nor do I see the value in such goals.
In my case, to efficiently match against a large number of IP addresses and IP address ranges:
Here is an example. Given the following list of strings:
1.2.3.4 127.0.0.1 127.0.0.2 127.0.0.11 128.0.0.1 125.0.0.* 200.0.0.1 2001:0db8:85a3:0000:0000:8a2e:0370:1300 2001:0db8:85a3:0000:0000:8a2e:0370:1330 2001:0db8:85a3:0000:0000:8a2e:0370:1337 あいうえお あいうえこ 😃😁😆😐 😃😁😆 😃😁🤣
list2regexp will return the following pattern:
^(?:1(?:(?:\.(?:2(?:\.(?:3(?:\.(?:4))))))|(?:2(?:(?:5(?:\.(?:0(?:\.(?:0(?:\.(?:.*)))))))|(?:7(?:\.(?:0(?:\.(?:0(?:\.(?:(?:1(?:|(?:1)))|(?:2))))))))|(?:8(?:\.(?:0(?:\.(?:0(?:\.(?:1)))))))))))|(?:2(?:0(?:0(?:(?:\.(?:0(?:\.(?:0(?:\.(?:1))))))|(?:1(?::(?:0(?:d(?:b(?:8(?::(?:8(?:5(?:a(?:3(?::(?:0(?:0(?:0(?:0(?::(?:0(?:0(?:0(?:0(?::(?:8(?:a(?:2(?:e(?::(?:0(?:3(?:7(?:0(?::(?:1(?:3(?:(?:0(?:0))|(?:3(?:(?:0|7))))))))))))))))))))))))))))))))))))))))))|(?:あ(?:い(?:う(?:え(?:(?:お|こ))))))|(?:😃(?:😁(?:(?:😆(?:|(?:😐)))|(?:🤣))))$
I didn’t know about this so I tried testing it out. Yes, this is possible, but requires enabling a specific flag (x when it comes to regexp2) assuming the engine even supports this feature.