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
- ¿Cómo puedo eliminar la cadena de caracteres dinámicos de una cadena?
- Android reemplazar con regex
- ¿Cuál sería una simple expresión regular para la comprobación de contraseña durante la suscripción?
- Manejo de spoiler BBcode Android
- Android / Java Regex para eliminar ceros adicionales de sub-cadenas
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
- Referencia a grupos coincidentes anteriores dentro de un regex
- Relacionar URI con <data> como http://example.com/algo en AndroidManifest
- Java Regex lookahead toma demasiado tiempo
- Buscar una subcadena entre ciertos caracteres en un índice desconocido
- Cómo puedo encontrar todas las coincidencias con una expresión regular en android
- Necesito una consulta SQL para encontrar todas las palabras que puede hacer con un conjunto de letras, incluyendo hasta dos fichas en blanco
- Fuerza de cierre en la expresión regular!
- Número de tarjeta de validación de la validación de la expresión regular
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 …
- Android – Dibujar en la parte superior de una imagen
- GridView y el desorden del icono mientras que usa "si (convertView == null)"