Hi Vimil,
Thanks for your reply.
Unfortunately, negate doesn't work as can be demonstrated with:
<target name="negate">
<property name="a.b.c.d" value="1"/>
<property name="a.b.c.e" value="2"/>
<property name="a.c.x.y" value="3"/>
<property name="p.q.r" value="4"/>
<propertyset id="plus"><propertyref prefix="a."/></propertyset>
<propertyset id="minus" negate="true"><propertyref prefix="a.b."/></propertyset>
<propertyset id="union">
<propertyset refid="minus"/>
<propertyset refid="plus"/>
</propertyset>
<echoproperties>
<propertyset>
<propertyset refid="union"/>
</propertyset>
</echoproperties>
</target>
If what I'm looking to find is "^a\.(?!b\.).*" ("a." followed by anything except for "b."), then this doesn't work. Of course, my
real need isn't just this simple case, so a hack for this particular example won't be of much help. For example, cases such as the
regexp "^a\..*(?!\.x|\.y|\.z)$" ("a." followed by anything, but not ending in ".x", ".y", or ".z") are more complex.
What I have considered is that I can use <propertyselector> to grab all of the positive matches and then remove all of the
exclusions. Then I'd have a list of the desired properties, but it is still not optimal because that result isn't a propertyset
that I can use where propertsets are used.
I've also wondered if a groovy script might be the best way to go. Any
pointers for either of these workarounds?
Enjoy,
Steve Amerige
SAS Institute, Deployment Software Development
On 11/10/2011 8:44 AM, Vimil Saju wrote:
The propertyset type has a negate attribute. maybe that will help you.
http://ant.apache.org/manual/Types/propertyset.html
------------------------------------------------------------------------------------------------------------------------------------
*From:* Steve Amerige <steve.amer...@sas.com>
*To:* Ant Users List <user@ant.apache.org>
*Sent:* Thursday, November 10, 2011 4:50 AM
*Subject:* Re: Negative Lookahead and Regexp
Hi all,
So, I'm guessing that Ant 1.7+ (with optional Ant-Contrib) doesn't support
negative lookahead regex searches.
So, I'm refocusing on the main objective here: I want a propertyset that
excludes properties matching certain patterns. Any idea as
to how to accomplish this?
Thanks!
Steve Amerige
SAS Institute, Deployment Software Development
On 11/9/2011 3:40 PM, Steve Amerige wrote:
> Hi all,
>
> Is negative lookahead supported at all in Ant 1.7 and higher (Ant-Contrib,
too)? Maybe my syntax is off:
>
> <propertyregex property="result" input="a.b.c.bad" select="\1" regexp="(.*(?!bad))"
defaultValue="" override="true"/>
> <propertyregex property="result" input="a.b.c.ok" select="\1" regexp="(.*(?!bad))"
defaultValue="" override="true"/>
>
> The first result should be the empty string and the second result should be
"a.b.c.ok". I'm also looking to use this idea in
> <propertyset> to exclude certain properties.
>
> See the regular expression page on this:
>
> http://www.regular-expressions.info/lookaround.html