package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?<!\{)\{([^\s}]+)\}(?!\})`)
var str = `<?php
return
[
'server'=> [
'host'=> 'smtp.saluddigital.net',
//'helo'=> url('domain'),
'username'=> 'php7@saluddigital.net',
'password'=> 'x5~JkKU+X(NY4R$C',
'port'=> '25',
'charset'=> '{\web.charset}',
],
'mails'=> [
// Para especificar varias direcciones, separarlas por comas
// Para especificar un nombre para una dirección, usamos el formato
// estándard nombre <email>, <email>.
// Ejemplos:
// 'jatubio@saluddigital.net'
// 'Andrés Pozo <apozo@saluddigital.net>, ergon@saluddigital.net'
//
// Usar {domain} para sustituirlo por el dominio actual
'default'=> [
'asunto'=> '{\web.titulo}',
'from'=> '{\web.titulo} <info@[url domain]>',
'replyto'=> '',
// Poner siempre en copia
'cc'=> '',
// Poner siempre en copia oculta
'cco'=> '',
// Direcciones para enviar la copia de administración
'admin'=> 'jatubio@saluddigital.net',
// Activar/Desactivar la copia de administración
'adminsend'=> true,
// Enviar una copia si está activado el flag de debug
'debug'=> 'jatubio@saluddigital.net',
// Activar/Desactivar la copia de debug
'debugsend'=> true,
// Modificar alguna de las opciones anteriores si cumple el filtro
'filtros'=> [
'paises'=> [
'filtro'=> [
'Pais'=>'España',
],
'opciones'=> [
'asunto'=>'Hola desde España',
],
],
],
],
// Formulario de contacto
'contacto'=> [
'asunto'=> 'Contacto desde {\web.titulo}',
'from'=> '{\web.titulo} <contacto@[url domain]>',
// Campos a incluir en el [repetir datos]
// Si está vacío, se incluyen todos
'campos'=> ['Nombre', 'Apellidos', 'Telefono', 'EMail', 'Pais', 'Curso', 'Comentario'],
'campoTo' => 'Nombre <EMail>',
//template=> 'contacto',
],
],
'templates'=> [
'base'=>'General',
],
];
//--------------------------------------------------------------------
//--------------------------------------------------------------------
// Ejemplos
//--------------------------------------------------------------------
//--------------------------------------------------------------------
return
[
'server'=> [
'host'=> 'smtp.saluddigital.net',
'helo'=> url('domain'),
'username'=> 'php7@saluddigital.net',
'password'=> 'x5~JkKU+X(NY4R$C',
'port'=> '25',
'charset'=> '{\web.charset}',
],
// Para especificar varias direcciones, separarlas por comas
// Para especificar un nombre para una dirección, usamos el formato
// nombre=>email.
// Ejemplos:
// 'jatubio@saluddigital.net'
// 'Andrés Pozo=>apozo@saluddigital.net, ergon@saluddigital.net'
'default'=> [
'asunto'=> '{\web.titulo}',
'from'=> '{\web.titulo}=>info@[url domain]',
'replyto'=> '',
// Poner siempre en copia
'cc'=> '',
// Poner siempre en copia oculta
'cco'=> '',
// Direcciones para enviar la copia de administración
'admin'=> 'jatubio@saluddigital.net',
// Activar/Desactivar la copia de administración
'adminsend'=> true,
// Enviar una copia si está activado el flag de debug
'debug'=> 'jatubio@gmail.com',
// Activar/Desactivar la copia de debug
'debugsend'=> true,
// Modificar alguna de las opciones anteriores si cumple el filtro
'filtros'=> [
'paises'=> [
'filtro'=> [
'Pais'=>'España',
],
'opciones'=> [
'asunto'=>'Hola desde España',
],
],
'cursos' => [
'filtro'=> [
'Curso'=>'Consulta General',
],
'opciones'=> [
'cco'=>'consultas@gmai.com',
],
]
],
],
// Formulario de contacto
'contacto'=> [
'asunto'=> 'Contacto desde {\web.titulo}',
'from'=> '{\web.titulo} <contacto@[url domain]>',
'filtros'=> [
'paises'=> [
'filtro'=> [
'Pais'=>'Costa Rica, Francia, Perú',
],
'opciones'=> [
'asunto'=>'Hola desde Costa Rica',
'from'=> '{\web.titulo
} <costarica@[url domain]>',
],
'activo'=> false,
],
'casos'=> [
'filtro'=> [
'NumCaso'=>'1, 8, 10',
],
'opciones'=> [
'{{asunto}}'=>'Consulta sobre un caso',
'cc'=> 'especialista@gmail.com',
],
],
'cursos'=> [
'activo'=> false,
]
],
],
];`
for i, match := range re.FindAllString(str, -1) {
fmt.Println(match, "found at index", 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 Golang, please visit: https://golang.org/pkg/regexp/