NAME
    App::StringQueryToRegexpUtils - CLIs for String::Query::To::Regexp

VERSION
    This document describes version 0.001 of App::StringQueryToRegexpUtils
    (from Perl distribution App-StringQueryToRegexpUtils), released on
    2022-11-04.

DESCRIPTION
    This distribution includes the following command-line utilities:

    *   query2re

FUNCTIONS
  query2re
    Usage:

     query2re(%args) -> any

    Convert a query to regex and show it.

    Examples:

    *   Must match all terms:

         query2re(queries => ["term1", "term2"]); # -> "(?^s:\\A(?=.*term1)(?=.*term2).*\\z)"

    *   Must contain term1 and term2 but must not contain term3:

         query2re(queries => ["term1", "term2", "-term3"]);

        Result:

         "(?^s:\\A(?=.*term1)(?=.*term2)(?!.*term3).*\\z)"

    *   Need to only match one term, search case-insensitively:

         query2re(queries => ["term1", "term2", "term3"], bool => "or", ci => 1);

        Result:

         "(?^si:\\A(?:(?=.*term1)|(?=.*term2)|(?=.*term3)).*\\z)"

    *   Regex in term:

         query2re(queries => ["term1", "/term2.*/", "term3"]);

        Result:

         "(?^s:\\A(?=.*term1)(?=.*(?^:term2.*))(?=.*term3).*\\z)"

    *   Word searching (terms must be whole words):

         query2re(queries => ["word1", "word2", "word3"], word => 1);

        Result:

         "(?^s:\\A(?=.*\\bword1\\b)(?=.*\\bword2\\b)(?=.*\\bword3\\b).*\\z)"

    *   Disallow regex searching:

         query2re(queries => ["term1", "/term2.+/", "term3"], re => 0);

        Result:

         "(?^s:\\A(?=.*term1)(?=.*\\/term2\\.\\+\\/)(?=.*term3).*\\z)"

    This function is not exported.

    Arguments ('*' denotes required arguments):

    *   bool => *str* (default: "and")

        (No description)

    *   ci => *true*

        Search case-insensitively.

    *   queries* => *array[str]*

        Query terms.

    *   re => *bool* (default: 1)

        Whether to allow regex in query terms.

    *   word => *true*

        Perform word searching (terms must be whole words).

    Return value: (any)

HOMEPAGE
    Please visit the project's homepage at
    <https://metacpan.org/release/App-StringQueryToRegexpUtils>.

SOURCE
    Source repository is at
    <https://github.com/perlancar/perl-App-StringQueryToRegexpUtils>.

SEE ALSO
    String::Query::To::Regexp

AUTHOR
    perlancar <perlancar@cpan.org>

CONTRIBUTING
    To contribute, you can send patches by email/via RT, or send pull
    requests on GitHub.

    Most of the time, you don't need to build the distribution yourself. You
    can simply modify the code, then test via:

     % prove -l

    If you want to build the distribution (e.g. to try to install it locally
    on your system), you can install Dist::Zilla,
    Dist::Zilla::PluginBundle::Author::PERLANCAR,
    Pod::Weaver::PluginBundle::Author::PERLANCAR, and sometimes one or two
    other Dist::Zilla- and/or Pod::Weaver plugins. Any additional steps
    required beyond that are considered a bug and can be reported to me.

COPYRIGHT AND LICENSE
    This software is copyright (c) 2022 by perlancar <perlancar@cpan.org>.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.

BUGS
    Please report any bugs or feature requests on the bugtracker website
    <https://rt.cpan.org/Public/Dist/Display.html?Name=App-StringQueryToRege
    xpUtils>

    When submitting a bug or request, please include a test-file or a patch
    to an existing test-file that illustrates the bug or desired feature.

