import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?<!\\{)\\{([^\\s\\}]+)\\}(?!\\})";
final String string = "<?php\n\n"
+ "return\n"
+ "[\n"
+ " 'server'=> [\n"
+ " 'host'=> 'smtp.saluddigital.net',\n"
+ " //'helo'=> url('domain'),\n"
+ " 'username'=> 'php7@saluddigital.net',\n"
+ " 'password'=> 'x5~JkKU+X(NY4R$C',\n"
+ " 'port'=> '25',\n"
+ " 'charset'=> '{\\web.charset}',\n"
+ " ],\n"
+ " 'mails'=> [\n"
+ " // Para especificar varias direcciones, separarlas por comas\n"
+ " // Para especificar un nombre para una dirección, usamos el formato\n"
+ " // estándard nombre <email>, <email>.\n"
+ " // Ejemplos:\n"
+ " // 'jatubio@saluddigital.net'\n"
+ " // 'Andrés Pozo <apozo@saluddigital.net>, ergon@saluddigital.net'\n"
+ " //\n"
+ " // Usar {domain} para sustituirlo por el dominio actual\n"
+ " 'default'=> [\n"
+ " 'asunto'=> '{\\web.titulo}',\n"
+ " 'from'=> '{\\web.titulo} <info@[url domain]>',\n"
+ " 'replyto'=> '',\n"
+ " // Poner siempre en copia\n"
+ " 'cc'=> '',\n"
+ " // Poner siempre en copia oculta\n"
+ " 'cco'=> '',\n"
+ " // Direcciones para enviar la copia de administración\n"
+ " 'admin'=> 'jatubio@saluddigital.net',\n"
+ " // Activar/Desactivar la copia de administración\n"
+ " 'adminsend'=> true,\n"
+ " // Enviar una copia si está activado el flag de debug\n"
+ " 'debug'=> 'jatubio@saluddigital.net',\n"
+ " // Activar/Desactivar la copia de debug\n"
+ " 'debugsend'=> true,\n"
+ " // Modificar alguna de las opciones anteriores si cumple el filtro\n"
+ " 'filtros'=> [\n"
+ " 'paises'=> [\n"
+ " 'filtro'=> [\n"
+ " 'Pais'=>'España',\n"
+ " ],\n"
+ " 'opciones'=> [\n"
+ " 'asunto'=>'Hola desde España',\n"
+ " ],\n"
+ " ],\n"
+ " ],\n"
+ " ],\n"
+ " // Formulario de contacto\n"
+ " 'contacto'=> [\n"
+ " 'asunto'=> 'Contacto desde {\\web.titulo}',\n"
+ " 'from'=> '{\\web.titulo} <contacto@[url domain]>',\n"
+ " // Campos a incluir en el [repetir datos]\n"
+ " // Si está vacío, se incluyen todos\n"
+ " 'campos'=> ['Nombre', 'Apellidos', 'Telefono', 'EMail', 'Pais', 'Curso', 'Comentario'],\n"
+ " 'campoTo' => 'Nombre <EMail>',\n"
+ " //template=> 'contacto',\n"
+ " ],\n"
+ " ],\n"
+ " 'templates'=> [\n"
+ " 'base'=>'General',\n"
+ " ],\n"
+ "];\n\n"
+ "//--------------------------------------------------------------------\n"
+ "//--------------------------------------------------------------------\n"
+ "// Ejemplos\n"
+ "//--------------------------------------------------------------------\n"
+ "//--------------------------------------------------------------------\n"
+ "return\n"
+ "[\n"
+ " 'server'=> [\n"
+ " 'host'=> 'smtp.saluddigital.net',\n"
+ " 'helo'=> url('domain'),\n"
+ " 'username'=> 'php7@saluddigital.net',\n"
+ " 'password'=> 'x5~JkKU+X(NY4R$C',\n"
+ " 'port'=> '25',\n"
+ " 'charset'=> '{\\web.charset}',\n"
+ " ],\n"
+ " // Para especificar varias direcciones, separarlas por comas\n"
+ " // Para especificar un nombre para una dirección, usamos el formato\n"
+ " // nombre=>email.\n"
+ " // Ejemplos:\n"
+ " // 'jatubio@saluddigital.net'\n"
+ " // 'Andrés Pozo=>apozo@saluddigital.net, ergon@saluddigital.net'\n"
+ " 'default'=> [\n"
+ " 'asunto'=> '{\\web.titulo}',\n"
+ " 'from'=> '{\\web.titulo}=>info@[url domain]',\n"
+ " 'replyto'=> '',\n"
+ " // Poner siempre en copia\n"
+ " 'cc'=> '',\n"
+ " // Poner siempre en copia oculta\n"
+ " 'cco'=> '',\n"
+ " // Direcciones para enviar la copia de administración\n"
+ " 'admin'=> 'jatubio@saluddigital.net',\n"
+ " // Activar/Desactivar la copia de administración\n"
+ " 'adminsend'=> true,\n"
+ " // Enviar una copia si está activado el flag de debug\n"
+ " 'debug'=> 'jatubio@gmail.com',\n"
+ " // Activar/Desactivar la copia de debug\n"
+ " 'debugsend'=> true,\n"
+ " // Modificar alguna de las opciones anteriores si cumple el filtro\n"
+ " 'filtros'=> [\n"
+ " 'paises'=> [\n"
+ " 'filtro'=> [\n"
+ " 'Pais'=>'España',\n"
+ " ],\n"
+ " 'opciones'=> [\n"
+ " 'asunto'=>'Hola desde España',\n"
+ " ],\n"
+ " ],\n"
+ " 'cursos' => [\n"
+ " 'filtro'=> [\n"
+ " 'Curso'=>'Consulta General',\n"
+ " ],\n"
+ " 'opciones'=> [\n"
+ " 'cco'=>'consultas@gmai.com',\n"
+ " ],\n"
+ " ]\n"
+ " ],\n"
+ " ],\n"
+ " // Formulario de contacto\n"
+ " 'contacto'=> [\n"
+ " 'asunto'=> 'Contacto desde {\\web.titulo}',\n"
+ " 'from'=> '{\\web.titulo} <contacto@[url domain]>',\n"
+ " 'filtros'=> [\n"
+ " 'paises'=> [\n"
+ " 'filtro'=> [\n"
+ " 'Pais'=>'Costa Rica, Francia, Perú',\n"
+ " ],\n"
+ " 'opciones'=> [\n"
+ " 'asunto'=>'Hola desde Costa Rica',\n"
+ " 'from'=> '{\\web.titulo\n"
+ "} <costarica@[url domain]>',\n"
+ " ],\n"
+ " 'activo'=> false,\n"
+ " ],\n"
+ " 'casos'=> [\n"
+ " 'filtro'=> [\n"
+ " 'NumCaso'=>'1, 8, 10',\n"
+ " ],\n"
+ " 'opciones'=> [\n"
+ " '{{asunto}}'=>'Consulta sobre un caso',\n"
+ " 'cc'=> 'especialista@gmail.com',\n"
+ " ],\n"
+ " ],\n"
+ " 'cursos'=> [\n"
+ " 'activo'=> false,\n"
+ " ]\n"
+ " ],\n"
+ " ],\n"
+ "];";
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html