Ant regex para nombres de paquetes android

En mi proyecto androide todos mis archivos de vista .java importan el archivo R basado en el nombre del paquete actual. Cuando cambio el nombre de mi paquete en el Manifiesto de Android (dinámicamente, no refactorizando vía Eclipse o cualquier otro IDE), necesito las referencias de todos mis archivos java para señalar al nuevo archivo R que se genera

Estoy haciendo un script de construcción a través de Ant, pero no estoy seguro de cómo sería la convención de expresión regular

Las cadenas que necesitan ser reemplazadas tienen este aspecto:

import com.mysite.myapp.R;

es decir.

import com.sushiroll.california.R

Esto es lo que tengo en mi script de construcción de hormigas

 <replaceregexp file="src/*" match="import*.R" replace="import ${current.package}.R" byline="true"> <fileset dir="src/."> <include name="*.java"/> </fileset> </replaceregexp> 

Donde quiero que coincida con todas las cadenas que dicen import y terminar en .R

Y reemplácelo por import $current.package}.R

¿Cómo diría eso para la hormiga regex? El partido y el reemplazo que escribí eran sólo conjeturas

Es necesario agrupar los caracteres de nombre de paquete antiguo antes de .R

Si sabe el nombre del paquete

  match="import com\.mysite\.myapp\.R;" 

Si ya sabes el nombre del paquete, pero prepárate para ser reprobado por importaciones erróneas si importas R de diferentes paquetes

  match="import (.*).R;" 

reemplazar a

replace="import ${current.package}.R;"

y el

  <fileset dir="src"> <include name="**/*.java"/> </fileset> 
 <replaceregexp match="import .+?\.R;" replace="import ${current.package}.R;" flags="g" > ... 

Donde +? Es necesario para que funcione si tiene dos importaciones en una línea, y g necesita por lo que no sólo se importa una importación por archivo. Aunque actualmente sólo tiene uno por archivo, ya que reemplazar todos ellos con la misma cadena, este es el regexp universalmente correcto …

  • Jsoup obtiene elemento en value = ""
  • Cómo ejecutar una consulta con regexp en Android
  • ¿Qué significa * + en regexp
  • Android, String.split (String regex) no divide toda la cadena
  • Uso de regex y android para categorizar diferentes campos
  • Regex para determinar las tarjetas de crédito en Android
  • ¿Hay una manera rápida de reconocer códigos HTML ASCII en una cadena o TextView?
  • Excluir etiquetas HTML y algunos caracteres UNICODE mientras busca en SQLite
  • Android java regex coinciden con todos menos un carácter
  • Cómo analizar valores float de cadena utilizando REGEX en java
  • Regex no funciona en Android pero funciona bien en Java
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.