Python 在句子中匹配以句型结尾的单词
如何使用正则表达式在以句型结尾的句子中查找单词 我有一个句子中要匹配的模式列表 例如 我的清单=['1','this'] 句子=‘有人做了这件事’有人做了这件事 结果应该只返回以my_列表中的项目结尾的单词 只有“某人”,“做这件事”Python 在句子中匹配以句型结尾的单词,python,regex,Python,Regex,如何使用正则表达式在以句型结尾的句子中查找单词 我有一个句子中要匹配的模式列表 例如 我的清单=['1','this'] 句子=‘有人做了这件事’有人做了这件事 结果应该只返回以my_列表中的项目结尾的单词 只有“某人”,“做这件事” 因为我不想匹配某个或这是,所以可以使用以下模式: \b(\w+(one|this))\b 它表示在单词边界内匹配整词(\b..\b),在整词内匹配任何单词字符(\w+),后跟文字one或this((one | this)) 您可以使用单词边界元字符\b结束模式。
因为我不想匹配某个或这是,所以可以使用以下模式:
\b(\w+(one|this))\b
它表示在单词边界内匹配整词(\b..\b
),在整词内匹配任何单词字符(\w+
),后跟文字one
或this
((one | this)
)
您可以使用单词边界元字符
\b
结束模式。它将匹配任何非单词字符的内容,包括字符串的结尾。因此,在这种特定情况下,模式将是(one | this)\b
要从my_list
变量实际创建正则表达式,假设不存在保留字符,可以执行以下操作:
重新导入
def单词以(句子,我的列表)结尾:
返回re.findall(r)({})\b.format(“|”。.join(my_list)),句子)
如果您使用的是Python 3.6+,还可以使用,在字符串本身内部进行格式化:
重新导入
def单词以(句子,我的列表)结尾:
return re.findall(fr“({'|'.join(my_list)})\b”,句子)
请参见结尾处的
$
锚定。这里有一个很好的解释:。简单示例:asdf$
将匹配以asdf
结尾的字符串。