verificación de expresiones regulares para las iniciales del nombre

linus_hologram:

Estoy tratando de crear una expresión regular que comprueba si uno o más iniciales de nombres de media tienen el siguiente stucture:

INICIAL. [Blanco] inicial. [Blanco] inicial.

No puede haber múltiples Iniciales siempre y cuando son seguidos por un punto (.) - espacios en blanco sólo se les permite entre dos iniciales (por ejemplo LB)

No debería ser posible tener un espacio después de una inicial si no hay otra siguiente inicial.

Por el momento, tengo la siguiente expresión regular que no funciona perfectamente a partir de ahora:

([A-Z]\. (?=[A-Z]|$))+

Usando regex101, este es un ejemplo: salida de expresiones regulares

Como se puede ver, todavía coincide con la cadena a pesar de que hay un espacio en blanco al final, sin tener otra inicial siguiente.

No estoy seguro de por qué ocurre esto. Estoy aprendiendo expresiones regulares y con mucho gusto si alguien me podría proporcionar una solución a mi problema :)

l_l_l_l_l_l_l_l:

El error que se está viendo se debe a que en el último paso, su expresión se lee en la [A-Z]\.mira hacia adelante para $(y lo encuentra). Me gustaría expresar el patrón de esta manera: (?:[A-Z]\. )*[A-Z]\.$. Tratar la inicial del apellido especialmente porque no tiene un espacio final.

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=391584&siteId=1
Recomendado
Clasificación