我是靠谱客的博主 无心小馒头,最近开发中收集的这篇文章主要介绍python 如何匹配列表中某个单词_Python正则表达式匹配整个单词,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我认为,通过给出的答案,OP所期望的行为并没有完全实现。具体来说,布尔值的期望输出没有完成。给出的答案做帮助说明这一概念,我认为他们是优秀的。也许我可以说明我的意思,我认为OP使用了下面的例子。

给出的绳子是,

a = "this is a sample"

“任择议定书”接着说,

我想匹配整个单词-例如匹配"hi"应该回来False自"hi"不是一个词.。

据我所知,引用的是搜索标记,"hi"正如世界上所发现的,"this"..如果有人搜索字符串,a为单词 "hi",他们应该接受False作为回应。

行动还在继续,

..和"is"应该回来True因为左边和右边没有阿尔法字符。

在本例中,引用是对搜索令牌的引用。"is"就像在单词中找到的那样"is"..我希望这有助于澄清为什么我们使用单词边界。其他答案的行为是“不返回一个单词,除非这个词是自己找到的-而不是在其他单词的内部。”“词界”速记字符类做得很好。

只有这个词"is"到目前为止已经在例子中使用过了。我认为这些答案是正确的,但我认为有更多的问题的根本意义,需要解决。为了理解这个概念,应该注意其他搜索字符串的行为。换句话说,我们需要泛化@Georg给出的(极好的)答案re.match(r"bisb", your_string)同r"bisb"@Omprakash的回答中也使用了概念,他以如下方式开始了一般性讨论

>>> y="this isis a sample."

>>> regex=re.compile(r"bisb") # For ignore case: re.compile(r"bisb", re.IGNORECASE)

>>> regex.findall(y)

[]

假设应该显示我讨论过的行为的方法是

find_only_whole_word(search_string, input_string)

然后,应该期望出现以下行为。

>>> a = "this is a sample"

>>> find_only_whole_word("hi", a)

False

>>> find_only_whole_word("is", a)

True

再一次,我就是这样理解OP的问题的。我们通过@Georg的回答向这种行为迈出了一步,但这有点难以理解/实现。风趣

>>> import re

>>> a = "this is a sample"

>>> re.search(r"bisb", a)

<_sre.SRE_Match object; span=(5, 7), match='is'>

>>> re.search(r"bhib", a)

>>>

第二个命令没有输出。@OmPrakesh给出的有用答案显示了输出,但没有显示输出。True或False.

下面是一个更完整的行为样本。

>>> find_only_whole_word("this", a)

True

>>> find_only_whole_word("is", a)

True

>>> find_only_whole_word("a", a)

True

>>> find_only_whole_word("sample", a)

True

# Use "ample", part of the word, "sample": (s)ample

>>> find_only_whole_word("ample", a)

False

# (t)his

>>> find_only_whole_word("his", a)

False

# (sa)mpl(e)

>>> find_only_whole_word("mpl", a)

False

# Any random word

>>> find_only_whole_word("applesauce", a)

False

>>>

这可以通过以下代码实现:

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

#

#@file find_only_whole_word.py

import re

def find_only_whole_word(search_string, input_string):

# Create a raw string with word boundaries from the user's input_string

raw_search_string = r"b" + search_string + r"b"

match_output = re.search(raw_search_string, input_string)

##As noted by @OmPrakesh, if you want to ignore case, uncomment

##the next two lines

#match_output = re.search(raw_search_string, input_string,

# flags=re.IGNORECASE)

no_match_was_found = ( match_output is None )

if no_match_was_found:

return False

else:

return True

##endof: find_only_whole_word(search_string, input_string)

下面是一个简单的演示。从保存文件的同一目录运行Python解释器,find_only_whole_word.py.

>>> from find_only_whole_word import find_only_whole_word

>>> a = "this is a sample"

>>> find_only_whole_word("hi", a)

False

>>> find_only_whole_word("is", a)

True

>>> find_only_whole_word("cucumber", a)

False

# The excellent example from @OmPrakash

>>> find_only_whole_word("is", "this isis a sample")

False

>>>

最后

以上就是无心小馒头为你收集整理的python 如何匹配列表中某个单词_Python正则表达式匹配整个单词的全部内容,希望文章能够帮你解决python 如何匹配列表中某个单词_Python正则表达式匹配整个单词所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部