用于匹配 Python 中德语字符的正则表达式



有人可以在正则表达式上帮助我匹配德语单词/句子吗 蟒?它不适用于 jupyter 笔记本。我在 jsfiddle 中尝试过同样的事情 它工作正常。我尝试使用以下脚本,但不起作用

import re
pattern = re.compile(r'[^a-zA-Z0-9äöüÄÖÜß]\', re.UNICODE)
print(pattern.search(text))

您的表达式将始终失败:

[^a-zA-Z0-9äöüÄÖÜß]\

细分,您需要

[   # literally
^   # start of the line / text
a-z # literally, etc.

问题是你需要一个[在一行的开始之前,这永远不可能是真的(要么什么都没有,要么换行符(。所以最后,要么删除反斜杠以获得正确的字符类,如下所示:

[^a-zA-Z0-9äöüÄÖÜß]+

但这肯定与您正在寻找的单词不匹配(恰恰相反(。因此,要么使用像w+这样简单的东西,要么使用@Wiktor在评论部分提出的解决方案。

方括号定义了要查找的字符范围,但是如果字符类中出现"^",则会否定这些字符。

如果要指定行的开头,则需要在括号前加上"^"。

在这种情况下,您还需要在类后面添加一个乘数来搜索多个字符:

r'^[a-zA-Z0-9äöüÄÖÜß]+'

括号中包含的一个或多个字符只要不与"[]"之间未列出的任何其他字符分隔,就会匹配

这是官方文档的链接

最新更新