php - Regex para obtener solo caracteres sin espacio dentro de etiquetas especiales
Tengo 2 textos en una cadena:
%Juan%
%Juan González%
Y quiero poder obtener solo %Juan% y no el que tiene el Espacio, he estado probando varios Regexes sin suerte. Actualmente uso:
/%(.*)%/U
pero obtiene ambas cosas, intenté agregar y jugar con [^\s] pero no funciona.
¿Alguna ayuda, por favor?
------------Respuesta------------
El problema es que. coincide con cualquier carácter excepto con una nueva línea. El modo no codicioso /U oSolo hace que .* sea perezoso y captura un texto desde el % hasta el primer % a la derecha del primer %.
Si sus cadenas contienen un par de %...%, puede usar
/%(\S+)%/
Vea la demostración de expresiones regulares
El patrón \S+ coincide con más de 1 carácter que no sea un espacio en blanco, y toda la clase de carácter negado [^\h%] que coincide con cualquier carácter excepto un espacio horizontal y el símbolo %.
Si tiene múltiples pares %...%, puede usar
/%([^\h%]+)%/
Vea otra demostración de expresiones regulares, donde \h mfija cualquier espacio en blanco horizontal.
Demostración de PHP:
$re = '/%([^\h%]+)%/';
$str = "%Juan%\n%Juan Gonzalez%";
preg_match_all($re, $str, $matches);
print_r($matches[1]);
Artículos relacionados:
html - Buscando gmail en google.com - suceden cosas extrañas
java - Mybatis asigna varias columnas a la misma propiedad
- ruby: los registros de Rails no muestran nada en la terminal para Puma cuando intento acceder a la URL: localhost:3000
- javascript - Cómo manejar el evento en el objeto secundario principal dinámico
- Cómo monitorear las solicitudes http de nodo en node-webkit
- matrices: error al intentar obtener imágenes de la ruta DocumentDirectory
- asp.net web api - Autenticación oAuth de API web personalizada
- Licencias Qt para proyectos privados de GitHub
- c# - Vinculación por separado a varias instancias de un control con plantilla
- restablecer múltiples campos de formulario con AngularJS
- Ejemplo de implementación de Devise-Rails en modo de producción mediante Docker
- php - Cómo imprimir múltiples valores de variables usando loop
- Cómo agregar una línea con números crecientes a un archivo txt usando bash
- javascript - Agregar o eliminar elementos en la matriz
- subprocesamiento múltiple: concepto de unión de Java ()
- javascript - Mantenga presionada la casilla de verificación personalizada
- python: no entiendo por qué obtengo una respuesta de diferencia al cambiar la línea de colocación si está activada en el código
Artículos calientes
- medicina china para la bronquitis
- Diferencia entre infección de las vías respiratorias superiores y bronquitis
- ¿Qué causa la epididimitis?
- Criterios diagnósticos de cálculos renales
- ¿Qué medicamento la masturbación causa prostatitis?
- ¿Cuáles son los factores de padecer gota?
- Qué comer durante la convalecencia de una hemorragia cerebral
- que es el alzheimer
- Principales criterios diagnósticos de las bronquiectasias
- ¿Cuáles son las formas de prevenir y tratar la menstruación irregular en las mujeres?
- Síntomas de gota de ternera
- Saco gestacional de 5x4mm cuanto dura el embarazo
- La diferencia entre espinillas y espinillas de ácaros
- Por qué frotar con jengibre puede tratar la caída del cabello
- ¿Cuánto tiempo se puede vivir con insuficiencia hepática?