什么样的正则表达式也可以包含重音字符?

2024-05-16 03:05:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用python编写一个包含重音字符(例如法语)的正则表达式验证器,但是,我找不到一个有效的正则表达式模式来实现这一点。我已经试过了:What's a good regex to include accented characters in a simple way?

但我仍然无法验证ådam例如,我基本上希望所有字母数字字符加上-、空格和撇号,但我使用的正则表达式不起作用:

(?i)^(?:(?![×Þß÷þø])[-'0-9a-zÀ-ÿ ])+$


Tags: toininclude模式simple字符whatway
2条回答

这可以通过导入regex包并使用Unicode类别\p{L}来匹配任何语言的任何类型的字母来实现。撇号、空格、连字符和数字0-9也匹配

import regex

string = "abcd ßloc ådam - + * 1 2 3 ''×Þß÷þø À-ÿ"
pattern = r"[\p{L}\d-' ]+"
result = regex.findall(pattern, string)

print(result)

# OUTPUT
# ['abcd ßloc ådam - ', ' ', " 1 2 3 ''", 'Þß', 'þø À-ÿ']

您可以将内置的re模块与以下表达式一起使用:

^(?:[^\W_]|[ '-])+$

详细信息

  • ^-字符串的开头
  • (?:[^\W_]|[ '-])+-一次或多次出现
    • [^\W_]-任何字母或数字
    • |-或
    • [ '-]-空格,撇号
  • $-字符串的结尾

regex demo

相关问题 更多 >