Hello, team,

I've tried to simplify construction below, which is sample of Andrey's
ant script, and end up with following regular expression which matches
string containing particular OS identifier or strings w/o any OS
identifiers:

".*([_\\W]${env.OS}[_\\W].*$|.*(?<!.*[\\W_](win|lin|sol)[\\W_].*)$)"

This would work fine with regex package from HARMONY-39 contribution,
but fail to compile with SUN's classes (PatternSyntaxException:
Look-behind group does not have an obvious maximum length, I would
appreciate if someone point me to the place in any regex
specification, stating that it's valid behavior).

>From the compatibility point of view this enhancement is no good, but
to give a hint how to implement negative assertions in terms of regex
negative look behind/ahead is the solution.

>            <propertyregex property="OS.match" input="@{file}"
> regexp="[\W_]${env.OS}[\W_]" override="yes" defaultValue="no"
> select="yes"/>
>            <propertyregex property="OS.any.match" input="@{file}"
> regexp="[\W_](win|linux|solaris)[\W_]" override="yes"
> defaultValue="no" select="yes"/>

>                        <istrue value="${OS.match}"/>
>                        <not>
>                            <istrue value="${OS.any.match}"/>
>                        </not>

Thank you.

Nikolay Kuznetsov
Intel Middleware Products Division

Reply via email to