Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

248
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda