Selects property names that match a given regular expression and returns them in a delimited list
| Attribute | Description | Required | 
|---|---|---|
| property | The name of the property you wish to set. | Yes. | 
| override | If the property is already set, should we change it's value.
            Can be trueorfalse | No. Defaults to false | 
| match | The regular expression which is used to select property names for inclusion in the list. This follows the standard regular expression syntax accepted by ant's regular expression tasks. | Yes. | 
| select | A pattern which indicates what selection pattern you want in the returned list. This used the substitution pattern syntax to indicate where to insert groupings created as a result of the regular expression match. | No. default is "\0". | 
| casesensitive | Should the match be case sensitive | No. default is "true". | 
| delimiter | The delimiter used to seperate entries in the resulting property | No. default is ",". | 
| distinct | Should the returned entries be a distinct set (no duplicate entries) | No. default is "false". | 
\0 indicates the entire property name (default).
    \1 indicates the first grouping
    \2 indicates the second grouping
    
    
    <property name="package.ABC.name" value="abc pack name" />
    <property name="package.DEF.name" value="def pack name" />
    <property name="package.GHI.name" value="ghi pack name" />
    <property name="package.JKL.name" value="jkl pack name" />
    <propertyselector property="pack.list"
                         delimiter=","
                         match="package\.([^\.]*)\.name"
                         select="\1"
                         casesensitive="false" />
    
    
    would yield the results
    
    
    ABC,DEF,GHI,JKL
    
    
    You could then iterate through this list using the ForEach Task as follows:
    
    
    <foreach list="${pack.list}"
                delimiter=","
                target="print.name"
                param="pack.id" />
    <target name="print.name" >
      <propertycopy name="pack.name" value="package.${pack.id}.name" />
      <echo message="${pack.name}" />
    </target>
    
    
    Would print
    
    
      [echo] abc pack name
      [echo] def pack name
      [echo] ghi pack name
      [echo] jkl pack name
    
    
    Copyright © 2003 Ant-Contrib Project. All rights Reserved.