Usando regex para selecionar uma palavra antes de outra palavra que comece com uma letra maiúscula

0

Eu gostaria de selecionar todos os adjetivos em uma frase em alemão.

Como todos os substantivos alemães estão em maiúscula, pensei que uma maneira seria procurar palavras em maiúsculas e selecionar a palavra anterior. Se a palavra selecionada não for um artigo definido ou indefinido, deve ser um adjetivo.

Alguém poderia me ajudar com uma expressão regular para fazer isso?

user2343618
fonte
Essa lógica não funcionará, ou seja, "Ich baue Häuser". "Baue" não é um adjetivo ...
VMai
Bom ponto VMai. Mas se eu encontrar uma maneira de selecionar a palavra antes de um substantivo, poderei filtrar verbos, artigos etc. shub, não tenho experiência com regex e gostaria de receber alguma ajuda, cabe a você ajudar ou não
user2343618
Normalmente, você deve procurar um limite de palavras, seguido por um ou mais caracteres minúsculos de um determinado conjunto (a-zäöüß deve fazer uma primeira abordagem), seguido de um espaço em branco, seguido de um caractere maiúsculo de um conjunto semelhante, seguido por alguns caracteres minúsculos. Mas não irá corresponder "Große Häuser" ...
VMai

Respostas:

0

Algo assim deve funcionar:

\b\u[[:alpha:]]*\b

Você precisará ativar a pesquisa de regex com distinção entre maiúsculas e minúsculas (para que apenas corresponda a caracteres maiúsculos). Se o seu mecanismo regex suportar agrupamento de caracteres, talvez seja necessário ativá-lo.

snowdude
fonte