Prueba esto aqui
b [a-zA-Z] + (?: S + d +)? (? :: d + (?: - d +)? (?:, S * d + (?: - d +)?) *)?
Véalo y pruébelo aquí en Regexr
a a (?:, S * d + (?: - d +)?) *
Al puede tener una lista de versos, versos que van al final.
Creo que esto hace lo que necesitas:
w + s? ( D {1,2})? (: D {1,2})? ([-–] d {1,2 })? (, s d {1,2} [-–] d {1,2})?
Suposiciones
- Los números están siempre en conjuntos de 1 o 2 dígitos
- El guión coincidirá con cualquiera de los siguientes
-
y-
A continuación se muestra la expresión regular con comentarios:
" w # Coincide con un solo carácter que es un" carácter de palabra "(letras , dígitos y guiones bajos) + # Entre uno e ilimitado, tantas veces como sea posible, devolviendo según sea necesario (codicioso) s # Combine un solo carácter que sea un "carácter de espacio en blanco" (espacios, tabuladores y saltos de línea) ? # Entre cero y una vez, tantas veces como sea posible, devolviendo según sea necesario (codicioso) (# Coincidir con la expresión regular a continuación y capturar su coincidencia en el número de referencia inversa 1 d # Coincidir con un solo dígito 0..9 {1, 2} # Entre una y 2 veces, tantas veces como sea posible, devolviendo según sea necesario (g reedy))? # Entre cero y una vez, tantas veces como sea posible, devolviendo según sea necesario (codicioso) (# Coincidir con la expresión regular a continuación y capturar su coincidencia en el número de referencia 2: # Coincidir con el carácter ":" literalmente d # Unir un solo dígito 0..9 {1,2} # Entre una y 2 veces, tantas veces como sea posible, devolviendo según sea necesario (codicioso))? # Entre cero y una vez, tantas veces como sea posible, devolviendo según sea necesario (codicioso) (# Coincidir con la expresión regular a continuación y capturar su coincidencia en el número 3 de referencia inversa [-–] # Coincidir con un solo carácter presente en la lista "-– ” D # Unir un solo dígito 0..9 {1,2} # Entre una y 2 veces, tantas veces como sea posible, devolviendo según sea necesario (codicioso))? # Entre cero y una vez, tantas veces como sea posible, devolviendo según sea necesario (codicioso) (# Coincidir con la expresión regular a continuación y capturar su coincidencia en el número 4 de referencia inversa, # Coincidir con el carácter "," literalmente s # Coincidir con una sola carácter que es un "carácter de espacio en blanco" (espacios, tabulaciones y saltos de línea) d # Coincidir con un solo dígito 0..9 {1,2} # Entre una y 2 veces, tantas veces como sea posible, devolviendo lo que sea necesario (codicioso) [-–] # Unir un solo carácter presente en la lista "-–" d # Unir un solo dígito 0..9 {1,2} # Entre una y 2 veces, tantas veces como sea posible, devolver como sea necesario (codicioso))? # Entre cero y una vez, tantas veces como sea posible, devolviendo según sea necesario (codicioso) "
Y aquí hay algunos ejemplos de su uso en php:
if (preg_match ('/ w + s? ( d {1,2})? (: d {1,2})? ([-–] d {1,2})? (, s d {1,2} [-–] d { 1,2})? / ', $ Asunto)) {# Coincidencia exitosa} else {# Intento de coincidencia fallido}
Obtener una matriz de todas las coincidencias en una cadena dada
preg_match_all (' / w + s ? ( d {1,2})? (: d {1,2})? ([-–] d {1,2})? (, s d {1,2} [-–] d {1,2})? / ', $ asunto, $ resultado, PREG_PATTERN_ORDER); $ resultado = $ resultado [0];
para esta expresión regular:
[A-Za-z] + ([0-9] +) (: [0-9] +)? ([-–][0-9] +)? (, [0-9] + [-–][0-9] +)?)?
O en su versión más bonita: [19659002] w + (( d +) (: d +)? ([-–] d +)? (, D + [-–] d +)?)?
ACTUALIZADO: para hacer coincidir guiones o guiones
NOTA: Lo he probado y coinciden con TODAS las 5 versiones posibles.
Ejemplo: http://regexr.com?30h4q
( b [a-zA-Z] w + s d +) (: d +) + ( [-–] d +)? ([,;] ( s)? ( D +:)? D + ([-–] d +)?)?
Este es un híbrido de todos los códigos aquí. Los únicos formatos que no se incluyeron son " solo el nombre del libro " o "solo el libro y el capítulo " (solo agregue ": 1-todos ”Después del capítulo #) Encontré los otros códigos proporcionados para muchas otras variaciones, no en línea con la Biblia sintaxis del verso
Estos son los ejemplos que probé en RegExr: (todavía no puedo ver estas imágenes)
JuanHumbolt 14: 16–17, 25–26
Juan 14: 16–17
Juan 14:16
Juan 77: 3; 2: 9-11 [19659032] Juan 5: 1-todosbrad 555-783-6867
Juan 6
Hola, cómo estás
Esdras 32: 5 Juan 14: 16-17, 25-36 [19659042] 1223:34
Juan 14: 16-17,25-36
Juan 14: 16-17; 32:25
No comments:
Post a Comment