python - Python findall 中的多个正则表达式

标签 python regex

假设我有一个字符串:“她对主题有很好的掌握唯一的问题是英语的清晰度她对俄语和 H2O 的信心非常好”

如果观察得当,这个字符串没有任何标点符号。我主要专注于放置句点。 “她对主题的掌握非常好。唯一的问题是英语的清晰度。她对俄语和 H2O 很有信心” 我可以使用正则表达式和 findall 来获取相关单词的列表。我尝试使用类似的东西,但没有给出预期的结果。我想要一个计算效率高的代码。

import re

text = "She has an excelllent command on the topicsOnly problem is clarity in EnglishHer confidence is very good in RUSSian and H2O"

r = re.findall('([A-Z][a-z]+)|([a-zA-Z0-9]+)|([A-Z][a-z]+)', text)

最佳答案

我用 PCRE 引擎尝试了类似的东西:(\p{Ll}+)(\p{Lu}\p{Ll}*)

您可以在这里进行测试:https://regex101.com/r/tqIcdS/1

想法是使用 \p{L} 来查找任何单词字符(如 \w),但要处理可能带有重音符号的 unicode 字符(例如: “Le pain, je l'ai mangéEnsuite j'ai bu un verre de vin”)。

  • \p{Ll} 匹配一个小写的 unicode 单词字符。

  • \p{Lu} 匹配一个大写的 unicode 单词字符。

我还捕获了前后字符以匹配整个单词。

不幸的是,Python 的默认 re 库不支持它。

但感谢 Wiktor 在下面的评论,您可以使用 PyPi regex 库:https://pypi.org/project/regex/

关于python - Python findall 中的多个正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68222389/

相关文章:

python - 如何在Python动画函数中返回未知数量的对象

python - 在张量中分配行会抛出 "None values not supported"

Python动态执行

ruby - 如何确定 ruby​​ 是否可以在不过度使用正则表达式的情况下进行 fork ?

mysql - MySQL Regexp 是否支持 Unicode 匹配

regex - 带重定向的 URL 掩码/伪装

python - 我的套接字程序出现连接错误

python - 将文件从一个文件夹复制到另一个文件夹,并在 .txt 文件中使用匹配的名称

regex - 如何使用正则表达式在 Unix 中搜索文件?

JavaScript 匹配 RegExp 后的子串