正则表达式匹配大写/特殊/ unicode /越南字符

hus*_*n39 3 python regex

我正面临一个问题.实际上,我使用越南文本,我想找到包含大写字母(大写字母)的每个单词.当我使用're'模块时,我的函数(temp)不会像"Đà"那样捕捉到单词.另一种方式(temp2)是一次检查每个字符,它可以工作,但它很慢,因为我必须将句子分成单词.

因此,我想知道是否有一种"重新"模块可以捕获所有特殊的大写字母.

我有两种方式:

def temp(sentence):
    return re.findall(r'[a-z]*[A-Z]+[a-z]*', sentence)


lis=word_tokenize(sentence)
def temp2(lis):
    proper_noun=[]
    for word in lis:
        for letter in word:
            if letter.isupper():
                proper_noun.append(word)
                break
    return proper_noun
Run Code Online (Sandbox Code Playgroud)

输入:

'nous avons 2 ??ng et 3 Euro'
Run Code Online (Sandbox Code Playgroud)

预期产量:

['??ng','Euro']
Run Code Online (Sandbox Code Playgroud)

谢谢!

Riz*_*man 5

你可以使用这个正则表达式:

\b\S*[A?ÂÁ??À?????Ã??????EÊÉ?È???????IÍÌ???OÔ?Ó??Ò?????Õ?????U?Ú?Ù???????YÝ????A?ÂÁ??À?????Ã??????EÊÉ?È???????IÍÌ???OÔ?Ó??Ò?????Õ?????U?Ú?Ù???????YÝ????A?ÂÁ??À?????Ã??????EÊÉ?È???????IÍÌ???OÔ?Ó??Ò?????Õ?????U?Ú?Ù???????YÝ????A?ÂÁ??À?????Ã??????EÊÉ?È???????IÍÌ???OÔ?Ó??Ò?????Õ?????U?Ú?Ù???????YÝ????A?ÂÁ??À?????Ã??????EÊÉ?È???????IÍÌ???OÔ?Ó??Ò?????Õ?????U?Ú?Ù???????YÝ????A?ÂÁ??À?????Ã??????EÊÉ?È???????IÍÌ???OÔ?Ó??Ò?????Õ?????U?Ú?Ù???????YÝ????A-Z]+\S*\b
Run Code Online (Sandbox Code Playgroud)

正则表达式演示