regex ant

regex - MAYÚSCULAS, minúsculas, capitalizar una propiedad de Ant



(2)

Entiendo que desea evitar las extensiones de Ant, pero la restricción de que la solución se implemente utilizando expresiones regulares es un poco estricta: disculpas si las siguientes curvas (¿roturas?) Son demasiado estrictas.

Ant se envía con un motor de javascript en estos días, por lo que cualquier cosa que parezca problemático de implementar en Ant xml generalmente se puede ocultar en un scriptdef . A continuación se presentan cuatro que cambian de caso.

En su caso, tomaría su propiedad some_property y la procesaría a través del script upper para obtener una versión en mayúsculas de la cadena para usar en la tarea replaceregexp .

<scriptdef language="javascript" name="upper"> <attribute name="string" /> <attribute name="to" /> project.setProperty( attributes.get( "to" ), attributes.get( "string" ).toUpperCase() ); </scriptdef> <scriptdef language="javascript" name="lower"> <attribute name="string" /> <attribute name="to" /> project.setProperty( attributes.get( "to" ), attributes.get( "string" ).toLowerCase() ); </scriptdef> <scriptdef language="javascript" name="ucfirst"> <attribute name="string" /> <attribute name="to" /> var the_string = attributes.get( "string" ); project.setProperty( attributes.get( "to" ), the_string.substr(0,1).toUpperCase() + the_string.substr(1) ); </scriptdef> <scriptdef language="javascript" name="capitalize"> <attribute name="string" /> <attribute name="to" /> var s = new String( attributes.get( "string" ) ); project.setProperty( attributes.get( "to" ), s.toLowerCase().replace( /^.|/s/S/g, function(a) { return a.toUpperCase(); }) ); </scriptdef>

Ejemplo de uso:

<property name="phrase" value="the quick brown FOX jUmped oVer the laZy DOG" /> <upper string="${phrase}" to="upper" /> <lower string="${phrase}" to="lower" /> <ucfirst string="${phrase}" to="ucfirst" /> <capitalize string="${phrase}" to="capitalize" /> <echo message="upper( ${phrase} )${line.separator}= ''${upper}''" /> <echo message="lower( ${phrase} )${line.separator}= ''${lower}''" /> <echo message="ucfirst( ${phrase} )${line.separator}= ''${ucfirst}''" /> <echo message="capitalize( ${phrase} )${line.separator}= ''${capitalize}''" />

Y salida:

[echo] upper( the quick brown FOX jUmped oVer the laZy DOG ) [echo] = ''THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG'' [echo] lower( the quick brown FOX jUmped oVer the laZy DOG ) [echo] = ''the quick brown fox jumped over the lazy dog'' [echo] ucfirst( the quick brown FOX jUmped oVer the laZy DOG ) [echo] = ''The quick brown FOX jUmped oVer the laZy DOG'' [echo] capitalize( the quick brown FOX jUmped oVer the laZy DOG ) [echo] = ''The Quick Brown Fox Jumped Over The Lazy Dog''

Gracias a Poni y Marco Demaio por la implementación de la Capitalización .

En Ant, tengo una propiedad llamada '' some_property '', y digamos que su valor es " hello ".

Estoy tratando de reemplazar un marcador de posición dentro de un archivo de texto con el valor de esta propiedad (" hola ") como mayúscula .
Por lo tanto, tengo esta tarea:

<replaceregexp match="SOME_PLACE_HOLDER" replace="${some_property}" byline="true">

Y quiero que funcione como si tuviera esta tarea :

<replaceregexp match="SOME_PLACE_HOLDER" replace="HELLO" byline="true">

Deseo evitar las tareas externas de Ant (como Ant-Contrib), por lo tanto, la solución debe ser una expresión regular , ¡debe ser posible!

MAYÚSCULAS, minúsculas y mayúsculas.

¿Alguien sabe las expresiones regulares correctas?


Puedes usar algo similar a SCriptdef y cualquier lenguaje conveniente.

<scriptdef language="javascript" name="upper"> <attribute name="string" /> <attribute name="to" /> project.setProperty( attributes.get( "to" ), attributes.get( "string" ).toUpperCase() ); </scriptdef>

Aquí se menciona JavaScript como ejemplo. También puedes usar cualquier otro.