python - 限制 re.findall 引用中的字数

标签 python regex

我试图仅从句子中获取引文 - 但是!仅当其长度为一两个词时。所以对于这句话

mysentence = 'Kids, you "tried your best" and you failed miserably. The "lesson" is, "never try."'

输出应该是

类(class)

永远不要尝试

到目前为止我已经有了

import re
print(re.findall(r'"(.*?)"', mysentence))

有什么建议可以解决这个问题吗?

最佳答案

您可以尝试这个正则表达式:

"[^"\s]+(?:\s[^"\s]+)?"

开头和结尾的 " 匹配引号开头和结尾的引用单词/短语。然后我们匹配一个单词:[^"]+[^"] 是除引号或空格之外的任何字符。我排除了空格以确保它仅匹配单个单词。

下一部分全部在可选组中,因为第二个单词是可选的。第二个单词是一个空格,后跟一个单词:\s[^"\s]+

Demo

关于python - 限制 re.findall 引用中的字数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57327886/

相关文章:

Java : Regular Expression escape Regular Expression

python - 为什么 `tf.data.Dataset.map`只运行一次?

python - 更改 matplotlib 线条样式中图

php - 正则表达式用于根据某些条件验证数字

javascript - 替换 HTML 内容的正则表达式

java - 如何在java中使用正则表达式来匹配一个词

javascript - 用于检查输入是否包含字符或至少 1 个笑脸的正则表达式?

python - elasticsearch时间查询一天中的小时

python - 从 Unicode 字符串中去除文件名中禁用字符的最有效方法

python - Django 有没有办法序列化多个对象?