python - 正则表达式匹配:不区分大小写的带空格的德语单词(Python)
问题描述
我有一个问题,我想在 [] 大括号内匹配任意数量的德语单词,忽略大小写。表达式应该只匹配空格和单词,没有别的,即没有标点符号或括号 例如:表达式 ['über das thema schreibt'] 应该与 ['Über', 'das', 'Thema', 'schreibt'] 匹配我有一个包含前一个顺序的项目的列表,另一个包含后一个顺序的项目,只要单词相同,它们都应该匹配。
我尝试使用的代码是 -
regex = re.findall('[(a-zA-Z_äöüÄÖÜß\s+)]', str(term))
或者
re.findall('[(\S\s+)]', str(term))
但他们没有工作。请帮我找到解决方案
解决方案
以最简单的形式使用\w+
作品来查找单词(非 ascii 字符需要 Unicode 标志),但是由于您希望它们位于方括号内(以及我假设的引号),因此您需要一些复杂的东西
\[(['\"])((\w+\s?)+)\1\]
\[
and\]
用于匹配方括号
['\"]
匹配任一引号,并\1
确保相同的引号是一个,另一端
\w+
捕获 1 个单词。这\s?
是一个可选空间。
整个字符串在第二组中,您可以将其拆分以获取列表
import re
text = "['über das thema schreibt']"
regex = re.compile("\[(['\"])((\w+\s?)+)['\"]\]", flags=re.U)
match = regex.match(text)
if match:
print(match.group(2).split())
\1
(对我来说,在终端中似乎不起作用的轻微编辑)
推荐阅读
- python - 粘性命令如何影响 Tkinter 中的 python 代码?
- java - JFreeChart 不起作用并阻止我的代码
- php - 如何获取当前经过身份验证的用户?
- function - 理解重载加函数
- app-inventor - 如何让安卓程序等待用户输入?
- c++ - C++20 中弃用的 lambda 捕获
- python - 无法在 tkinter 根目录中拉伸标签
- python - 如何将此 Powershell 函数转换为在 Python 中工作?
- java - 如何解决 HttpClient Post Request Java 上的 Bad Request 错误
- android - 在可见性 recyclerview 项目中启动和停止 CountDownTimer