all 10 comments

sorted by: hot top controversial new old
[–] 6 points 3 weeks ago (1 child)

May want to out a warning on this tool that if your checking against a long list of strings you may want to use something else. A massive regex can be a huge performance bottleneck. I know from personally killing a production server by using an inefficient regex on large strings of data.

  • source
  • hideshow 1 child comment
  • [–] [S] 2 points 3 weeks ago*

    list2regexp will limit each regular expression to matching 10,000 entries by default. Matching against each pattern of 10,000 entries takes around 1 microsecond on a laptop. I've fed it several megabytes of IP addresses and it doesn't choke. That's kind of the point.

  • source
  • parent
  • [–] [S] 3 points 3 weeks ago (7 children)

    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))))))))))))))))))))))))))))))))))))))))))|(?:あ(?:い(?:う(?:え(?:(?:お|こ))))))|(?:😃(?:😁(?:(?:😆(?:|(?:😐)))|(?:🤣))))$
    
  • source
  • hideshow 7 child comments
  • [–] 2 points 3 weeks ago (6 children)

    This regexp is literally the worst fucking thing I have ever seen. Please never ever use a regexp of that size ever in your production system.

  • source
  • parent
  • hideshow 6 child comments
  • [–] [S] 0 points 3 weeks ago* (3 children)

    This drive-by criticism is the worst fucking thing I have ever seen. Please never ever use drive-by criticism without any code or references which back up its claims to inform your opinion on others work.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 2 points 3 weeks ago (2 children)

    The reason this is horrible is because its absolutely horrible if you ever have to manually touch this regex ever again.

    This was not meant as a way to criticise your tool, because it is cool what you did there, but using regexp of that size is something I would advise against in an production environment.

  • source
  • parent
  • hideshow 2 child comments
  • [–] [S] 0 points 3 weeks ago* (1 child)

    So, your criticism is that machine-generated code can be hard to edit when a human needs to touch it. I don't see how that is relevant here, being human-legible or editable is not a stated goal of the project. Rather than lobbing criticism against any software which machine-generates code for machine consumption, it makes more sense to use your best judgement and choose the software which is right for your use-case. I don't even want to know why you would ever machine-generate a regexp from a list, not save the list, and then somehow need to edit the regexp without access to the original items. That's not a software problem.

  • source
  • parent
  • hideshow 1 child comment