I wouldn’t do regex by default. Quite a few characters are regex meta characters (e.g. “(“ and “.”) and it’s a pain to have to remember to escape them when copy-pasting output into the test.
So, my vote is for > .returns(regexMatch("id=\\p{Graph}+; a=1")) // separate consumer I don’t have an opinion on group capturing. > On Jan 2, 2019, at 4:26 PM, Andrei Sereda <and...@sereda.cc> wrote: > > Hello, > > > As part of [CALCITE-2755](https://issues.apache.org/jira/browse/CALCITE-2755) > ([982](https://github.com/apache/calcite/pull/982)) I needed to perform > regex comparison of result (since it is not known in advance). > > The assertion looks like: > > ```java > assertThat() > .query("select id, a from view") > .returns(regexMatch("id=\\p{Graph}+; a=1")) > ``` > Do you think CalciteAssert might benefit from regular expressions ? Should > it support expressions natively or as standalone Consumer implementation ? > Should it also support [group capturing]( > https://docs.oracle.com/javase/tutorial/essential/regex/groups.html) ? If > so, what is recommended syntax ? > > ### Syntax examples > ```java > .returns(regexMatch("id=\\p{Graph}+; a=1")) // separate consumer > .returns("id=\\p{Graph}+; a=1") // native support > .returns("id=REGEX{\\p{Graph}+}; a=1") // special syntax > .returns("id=(\\p{Graph}+); a=$1-test") // group capturing ? > ``` > > Regards, > Andrei.