在Python中,在另一个字符串中查找字符串的优雅方法是什么,但只有当子字符串在整个单词中,而不是单词的一部分时才有效?在字符串中查找子字符串,但仅限于整个单词?
也许一个实例证实了我的意思:
string1 = "ADDLESHAW GODDARD"
string2 = "ADDLESHAW GODDARD LLP"
assert string_found(string1, string2) # this is True
string1 = "ADVANCE"
string2 = "ADVANCED BUSINESS EQUIPMENT LTD"
assert not string_found(string1, string2) # this should be False
我怎样才能最好编写一个名为string_found,会做什么,我需要的功能?我想我或许能有这样的事情掰过来:
def string_found(string1, string2):
if string2.find(string1 + " "):
return True
return False
但是,这并不感到很优雅,也将不匹配字符串1,如果它是在字符串2月底。也许我需要一个正则表达式? (argh正则表达式恐惧)
不客气:) – 2010-11-11 14:20:45
只要确保“保存”键盘粘贴,以便它们不会过期。 (我包括一个链接回到键盘评论,稍后也是我自己的笔记。) – 2010-11-13 07:27:07
对于那些希望确保标点符号和空白符号被认为是有效的整个单词分隔符的人...将上面的代码修改为如下: '''不在(string.whitespace + string.punctuation)''' 也注意这个函数的效率是RegEx替代方案的两倍多,所以......如果你使用它很多,这个功能是要走的路。 – 2017-04-17 18:52:06