尝试在Python中使用findall()查找模式中的重复字符串

2024-10-02 04:36:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Python编写一个程序,计算一个单词出现的次数。但是,为了计数,程序需要查看一个句子的开头,并且只计算以%开头的句子中的单词。例如

%act: <dur> pours peanut on plate

我想数一数花生这个词。程序应该返回1。同时

*CHI: peanut.

将返回0,因为它以* 所以我用了findall()

findall('\%.*?' + "peanut", website_html)

但是,如果一个句子有两个“花生”,模式匹配只返回1。例如

%act: <bef> gives peanut . eats . <dur> gives peanut . <aft> gives raisin

只返回1。在

我怎么才能让它返回2?在

谢谢


Tags: 程序on单词次数act句子计数gives
1条回答
网友
1楼 · 发布于 2024-10-02 04:36:02

我建议把它分成两部分。一、 比如说:

num_peanuts = 0
for sentence in re.findall(r'(?m)^%.*', website_html):
    num_peanuts = len(re.findall(r'\bpeanut\b', sentence))

注意,{1{1>在第一个^是一个零宽度断言,它与行的开头相匹配)。在

我还需要注意的是,我的peanut相关regexp中的\b是为了确保单词peanut不是某个较大单词(例如peanuts)的子串。你可能想要也可能不想要,这取决于你的任务细节。在

相关问题 更多 >

    热门问题