Regexp 代表一个正则表达式。
属性 | 描述 | 必需 |
---|---|---|
pattern | 正则表达式模式 | 是 |
refid | 使此 regexp 成为对在其他地方定义的 regexp 的 引用。如果指定,则不允许其他属性或嵌套元素。 |
否 |
<regexp id="myregexp" pattern="alpha(.+)beta"/>
定义一个正则表达式,以便稍后使用 id myregexp
。
<regexp refid="myregexp"/>
使用 id myregexp
的正则表达式。
Apache Ant 附带了 java.util.regex
包、jakarta-regexp 和 jakarta-ORO 的包装器,有关支持库的信息,请参阅 安装依赖项。
属性 ant.regexp.regexpimpl
控制将选择哪个正则表达式实现。此属性的可能值为
org.apache.tools.ant.util.regexp.Jdk14RegexpRegexp
org.apache.tools.ant.util.regexp.JakartaOroRegexp
org.apache.tools.ant.util.regexp.JakartaRegexpRegexp
它也可以是 org.apache.tools.ant.util.regexp.Regexp
接口的另一个实现。如果未定义 ant.regexp.regexpimpl
,Ant 将使用 Jdk14Regexp,因为该库始终可用。
与行终止符相关的匹配存在跨平台问题。例如,如果您使用 $
将正则表达式锚定到行尾,则结果可能因平台和使用的正则表达式库而异。强烈建议您在依赖正则表达式之前在 Unix 和 Windows 平台上测试您的模式。
\n,与 Perl 一致。
java.util.regex
默认使用 \n、
\r\n、
\u0085、
\u2028、
\u2029,但在包装器中配置为仅使用
\n(UNIX_LINE)
我们过去建议您使用 Jakarta ORO,但由于其开发已停止,Java 的内置正则表达式包可能是未来最好的选择。
这些字符串过滤器也使用 regexp 机制来选择正则表达式实现