Estoy tratando de obtener palabras especiales del script para buscarlo en Wikipedia para obtener una explicación.
Texto de entrada: "El tailandés, o tailandés central, es un idioma tai de la familia de idiomas Kra-Dai que hablan los tailandeses centrales y la gran mayoría de los chinos tailandeses. Es el único idioma oficial de Tailandia. Quiero... "
La salida esperada: ["Tailandés", "Tailandés central", "Kra–Dai", "Chino tailandés", "Tailandia"]
Luego, al usar la API de Wikipedia, obtendré las definiciones de las palabras anteriores. Estoy usando esta expresión regular:
[AZ][-a-zA-Z]*(?:\s+[AZ][-a-zA-Z]*)?Sin embargo, cuando intento el resultado es:
["Tailandés", "Tailandés central", "Kra", "Dai", "Chino tailandés", "Tailandia", "Yo", "Eso"]
Es separar las palabras con que contiene "-" e incluir las que empiezan con mayúscula después de un punto "." y también incluye "yo" y "eso".
¿Cómo podría obtener todas las palabras en mayúsculas excepto la palabra en mayúsculas después de "."
Podemos usar límites de palabras \b .
let str = 'Thai, or Central Thai, is a Tai language of the Kra-Dai language family spoken by the Central Thai people and a vast majority of Thai Chinese. It is the sole official language of Thailand. I want to...'; let arr =[...str.matchAll( /\b[AZ]\w{2,}-?(\s?\b[AZ]\w*)?/g)].map(e=>e[0]); console.log(arr);¿Cómo podría obtener todas las palabras en mayúsculas excepto la palabra en mayúsculas después de "."
Pero también puede obtener palabras especiales al comienzo de una oración:
Periplectic group consists of the group's last common ancestor and all its descendants
Esto funcionó para mí (?!.\s)[AZ][az]+(?:\s[AZ][az]+|[–]+[AZ][az]*|[az]+)