gpt4 book ai didi

python - 正则表达式是否是编写涉及单词和句子的代码的更好方法?

转载 作者:行者123 更新时间:2023-11-30 23:37:45 25 4
gpt4 key购买 nike

我想定义一个函数,它接受一个句子并返回长度至少为 4 且小写的单词。问题是,我对 Python 还很陌生,我不太确定如何使代码处理单词而不是整数。我当前的代码如下:

def my_function(s):
sentence = []
for word in s.split():
if len(word) >=4:
return (word.lower())

如果我 my_function("Bill's dog wasborn in 2010") 我期望 ["bill","born"] 我的代码输出 "账单”根据我在 StackOverflow 和 Python 教程中看到的内容,正则表达式会对我有所帮助,但我并不完全理解模块中发生的情况。你们能否解释一下正则表达式如何提供帮助(如果有的话)?

最佳答案

您的要求略有不一致,所以我以您的示例作为引用。

In [27]: import re

In [28]: s = "Bill's dog was born in 2010"

In [29]: [w.lower() for w in re.findall(r'\b[A-Za-z]{4,}\b', s)]
Out[29]: ['bill', 'born']

让我们看一下正则表达式,r'\b[A-Za-z]{4,}\b'

r'...' 不是正则表达式的一部分。这是一个名为 raw string 的 Python 构造。 。它就像一个普通的字符串文字,除了像 \b 这样的反斜杠序列。没有通常的含义。

两个\b 寻找单词边界(即单词的开头或结尾)。

[A-Za-z]{4,} 查找由四个或更多字母组成的序列。 [A-Za-z] 称为字符类,由字母 AZaz{4,} 是一个重复运算符,要求字符类至少匹配四次。

最后,列表推导式 [w.lower() for w in ...] 将单词转换为小写。

关于python - 正则表达式是否是编写涉及单词和句子的代码的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15208819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com