Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

246
Vistas
Eliminar todos los pasajes no latinos de una cadena con expresiones regulares

Necesito eliminar todos los pasajes que contienen caracteres no latinos de una cadena; sin embargo, a diferencia de muchas respuestas que he visto, también quiero eliminar la puntuación en esos pasajes y dejar la misma puntuación en los pasajes en inglés.

Para decirlo de otra manera, cuando se encuentra un carácter no latino como "ָהּ", la expresión regular comenzará a omitir todo, incluida la puntuación ASCII, hasta que se encuentre un carácter [a-zA-Z].

Probé el siguiente ejemplo, pero está eliminando incorrectamente la cita después de "mitades", lo que me hace creer que no tengo una buena definición de caracteres no latinos.

[\u0250-\ue007][^a-zA-Z]*

Aquí hay un ejemplo de texto de entrada (actualizado):

 or perhaps, a - אוֹ דִילְמָא אֵין אִשָּׁה מִתְקַדְּשֶׁת לַחֲצָאִין כְּלָל (12);time תֵּיקוּ person cannot be in separate halves at all, even though both "halves” would come together simultaneously?(13) The speaker replies:(14)

y la cadena resultante es:

 or perhaps, a - time person cannot be in separate halves at all, even though both "halveswould come together simultaneously?(13) The speaker replies:(14)

Como puede ver, se equivoca en la tercera línea. Obviamente, podría excluir a ese personaje en particular, pero me preocupa que se estropee en otros casos extremos.

¿Alguna otra idea? (Estoy trabajando con Javascript por cierto)

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Entiendo que por " un carácter no latino como הּ " te refieres a cualquier letra que no sea ASCII .

Para hacer coincidir cualquier letra que no sea una letra ASCII, puede usar [^\P{L}a-zA-Z] . Esta es una clase de carácter negado que coincide con cualquier carácter que no sea un carácter que no sea una letra ( \P{L} ) y letras ASCII ( a-zA-Z ). Entonces, es básicamente el patrón \p{L} con la excepción de las letras ASCII.

Este patrón basado en la clase de caracteres Unicode requiere un indicador u , compatible con el entorno JavaScript de Node.js.

La solución se verá como

 text = text.replace(/[^\P{L}az][^az]*/gui, '')

Tenga en cuenta que la bandera g hace que replace reemplace todas las apariciones en la cadena e i se usa para acortar el patrón de letras ASCII (ya que hace que el patrón no distinga entre mayúsculas y minúsculas).

Vea la demostración de JavaScript:

 const text = `or perhaps, a - אוֹ דִילְמָא אֵין אִשָּׁה מִתְקַדְּשֶׁת לַחֲצָאִין כְּלָל (12);time תֵּיקוּ person cannot be in separate halves at all, even though both "halves” would come together simultaneously?(13) The speaker replies:(14)`; console.log( text.replace(/[^\P{L}az][^az]*/gui, '') )

Producción:

 or perhaps, a - time person cannot be in separate halves at all, even though both "halves” would come together simultaneously?(13) The speaker replies:(14)
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda