• 13 Posts
  • 14 Comments
Joined 6 years ago
cake
Cake day: June 28th, 2020

help-circle



  • Those would be interesting features, but it currently only operates on plain text lists, or lists with wildcards (*) which are converted into regexp (.*), or lists with CIDR suffixes (127.0.0.0/24). You can disable escaping, but list2regexp doesn’t understand the individual segments of regular expressions, so the result will probably be wrong.

    With that said, the library being used to handle escaping and testing the generated patterns (regexp2) does expose the syntax tree so the information is available to do interesting things with, such as what you suggest.




  • 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))))))))))))))))))))))))))))))))))))))))))|(?:あ(?:い(?:う(?:え(?:(?:お|こ))))))|(?:😃(?:😁(?:(?:😆(?:|(?:😐)))|(?:🤣))))$