正規表現は正規表現を表します。
属性 | 説明 | 必須 |
---|---|---|
パターン | 正規表現パターン | はい |
refid | この正規表現 を他の場所で定義された正規表現 への参照にします。指定された場合は、他の属性またはネストされた要素は許可されません。 |
いいえ |
<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の組み込み正規表現パッケージが今後最良の選択肢となるでしょう。
次の文字列フィルタも、正規表現実装を選択するために正規表現のメカニズムを使用します。