2011-10-31 46 views
2

正規表現の置換パターンとApache Antの制限付きドキュメントの理解に失敗しています。propertyregexです。私の問題は、$ {user.name}プロパティを取って$ {user.name.lc}という小文字のバージョンを作る必要があるが、正しい文字列を置き換えることができないということです。Antのpropertyregexの構文を置き換える必要があります。

<target name="foobar"> 
    <echo>${user.name}</echo> 
    <propertyregex 
       property="user.name.lc" 
       input="${user.name}" 
       regexp="[A-Z]" 
       replace="[a-z]" 
       global="true" /> 
    <echo>${user.name.lc}</echo> 
    </target> 

それは正しく名前の大文字部分が、交換用の爆弾を見つけた:

これは私が持っているものです。これは私が得るものです:

私はグーグルグーグルで、別の代替文字列を試して約2時間読み込んでいます。 antのドキュメントはグループ化を参照し、これらの例を示しています。 があるかもしれないし、ユーザー名にグループ化されているかもしれないので、私のための助けはありません。

Antが「正規表現の置換パターン」が必要と言うものを私に提供できる人は誰ですか? my

答えて

0

正規表現を使用しないでください。あなたが探しているものをサポートしている正規表現エンジンはほんのわずかですが、私はpropertyregexがその1つだとは思わないのです。これを代わりに使用してください:

<pathconvert property="converted"> 
    <path path="${user.name}"/> 
    <chainedmapper> 
    <flattenmapper/> 
    <scriptmapper language="javascript"> 
    self.addMappedName(source.toLowerCase()); 
    </scriptmapper> 
    </chainedmapper> 
    </pathconvert> 

    <echo>${converted}</echo> 
+0

このソリューションは魅力のように働いたありがとうございます。 – MoxieandMore

-2

replace属性には%1>を使用できます。あなたは、コードは次のようになりますので>は、大文字に変換するための標準的な正規表現のシンボルである:

<propertyregex 
       property="user.name.lc" 
       input="${user.name}" 
       regexp="[A-Z]" 
       replace="%1>" 
       global="true" /> 
関連する問題