正则表达式?匹配部分或整个单词

2024-10-01 17:31:10 发布

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

我想知道是否可以使用regex和python来捕获一个单词或单词的一部分(如果它在字符串的末尾)。在

例如:
目标词-土豆
string-“这是一个关于土豆的句子
string-“这是一个关于apotat”的句子
string-“这是关于apota的另一个句子”

谢谢!在


Tags: 字符串目标string单词regex句子末尾土豆
3条回答

不知道如何匹配python中的regex,但regex应该是:

"\bp$|\bpo$|\bpot$|\bpota$|\bpotat$|\bpotato$"

如果它是字符串中的最后一个单词,那么它将匹配从p到{}之间的任何内容,如果这是您想要的,也可以不匹配类似“foopototo”的内容。在

|表示另一种选择,\b是“单词边界”,因此它匹配单词和非单词字符之间的位置(而不是字符)。并且$匹配字符串的结尾(也是一个位置)。在

使用$在字符串末尾进行匹配。例如,以下内容仅在字符串末尾匹配“potato”(第一个示例):

"potato$"

这将与您的所有示例相匹配:

^{pr2}$

但是,也有可能匹配“potao”或“potaot”。在

import re

def get_matcher(word, minchars):
    reg = '|'.join([word[0:i] for i in range(len(word), minchars - 1, -1)])
    return re.compile('(%s)$' % (reg))

matcher = get_matcher('potato', 4)
for s in ["this is a sentence about a potato", "this is a sentence about a potat", "this is another sentence about a pota"]:
    print matcher.search(s).groups()

输出

^{pr2}$

相关问题 更多 >

    热门问题