using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(?<!\{)\{([^\s}]+)\}(?!\})";
string input = @"<?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,
]
],
],
];";
foreach (Match m in Regex.Matches(input, pattern))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
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 C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx