https://bugs.exim.org/show_bug.cgi?id=1680

--- Comment #1 from Philip Hazel <p...@hermes.cam.ac.uk> ---
I don't think ^a\d+b$ is the intersection of ^a\d+ and \d+b$ if you mean
"matches strings that match each separate pattern". I think the intersection is
^a\d+(.+\d+)?b$ because the first means "starts with a\d+" and the second means
"ends with \d+b". The string "a123xyz456b" meets that description but does not
match ^a\d+b$.

PCRE isn't into manipulating regular expressions. However, you can write
patterns that do "and" type matching using lookahead assertions. For example,
if you want to match strings that match A and B and C (where A, B, C are
complex patterns) you can use ^(?=.*A)(?=.*B)(?=.*C) or just
^(?=.*A)(?=.*B).*C. For example, to match lines that contain both "cat" and
"dog" you can write ^(?=.*cat)(?=.*dog). [If you want to capture matched
strings, it gets a bit more involved.]

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-- 
## List details at https://lists.exim.org/mailman/listinfo/pcre-dev 

Reply via email to