Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

240
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!