Python 如何确定子字符串是否位于不同的字符串中
我有一个子字符串:Python 如何确定子字符串是否位于不同的字符串中,python,string,Python,String,我有一个子字符串: substring = "please help me out" 我有另一个字符串: string = "please help me out so that I could solve this" 如何使用Python查找substring是否是string的子集?中的:字符串中的substring: >>> substring = "please help me out" >>> string = "please help me o
substring = "please help me out"
我有另一个字符串:
string = "please help me out so that I could solve this"
如何使用Python查找
substring
是否是string
的子集?中的:字符串中的substring
:
>>> substring = "please help me out"
>>> string = "please help me out so that I could solve this"
>>> substring in string
True
(顺便说一句-尽量不要给变量命名string
,因为有一个同名的Python标准库。如果在大型项目中这样做,可能会让人感到困惑,因此避免这样的冲突是一个好习惯。)如果要查找的不仅仅是真/假,最好使用re模块,比如:
import re
search="please help me out"
fullstring="please help me out so that I could solve this"
s = re.search(search,fullstring)
print(s.group())
s.group()
将返回字符串“请帮帮我”。您也可以尝试find()方法。它确定字符串str是出现在字符串中,还是出现在字符串的子字符串中
str1 = "please help me out so that I could solve this"
str2 = "please help me out"
if (str1.find(str2)>=0):
print("True")
else:
print ("False")
人们在评论中提到了string.find()
,string.index()
,以及string.indexOf()
,我在这里对他们进行了总结(根据:
首先,没有string.indexOf()
方法。Deviljho发布的链接显示这是一个JavaScript函数
其次,string.find()
和string.index()
实际上返回子字符串的索引。唯一的区别是它们如何处理子字符串未找到的情况:string.find()
返回-1
,而string.index()返回
引发了一个ValueError
我想我会加上这个,以防你在一次技术面试中看到如何做到这一点,他们不希望你在或中使用Python的内置函数,这很可怕,但确实发生了:
string = "Samantha"
word = "man"
def find_sub_string(word, string):
len_word = len(word) #returns 3
for i in range(len(string)-1):
if string[i: i + len_word] == word:
return True
else:
return False
也可以使用这种方法
if substring in string:
print(string + '\n Yes located at:'.format(string.find(substring)))
不使用find(),一个简单的方法是如上所述使用“in”
如果'str'中存在'substring',则if part将执行,否则其他部分将执行。不仅会混淆,而且还会打断该点之后引用字符串的所有内容。关于正则表达式搜索的好提示。请注意。如果你想用正则表达式解决一些问题,你就要解决两个问题。天哪,python太强大了,我认为它需要一个函数来完成,但它是一个内置的O-oI,我只是在学习python之后才开始学习JS,为此你需要添加大量的if-else语句和其他东西。所以,我只是想提醒自己它是如何在Python中完成的,这个答案让我对自己说‘当然!’,我的意思是,在Python中,这样的事情非常琐碎,你永远不会考虑它们P@GamesBrainiac实际上,要在JS中实现同样的功能,只需string.indexOf(substring)!=-1
,如果您再次查找,是的子字符串存在于字符串中,您如何查找字符串的位置,以及如果子字符串多次出现在字符串中会发生什么情况?@yoshiserry如果您希望在字符串中查找子字符串的位置,那么您希望在给定字符串中使用查找子字符串“bob”。很好的示例,但是你的身份不正确。为了加快速度,我会检查如果len(substring)>len(string)返回False
循环范围最好是范围(len(string)-len(substring))
,因为在字符串的最后两个字母中找不到三个字母的单词。(节省了一些迭代)。
string = "Samantha"
word = "man"
def find_sub_string(word, string):
len_word = len(word) #returns 3
for i in range(len(string)-1):
if string[i: i + len_word] == word:
return True
else:
return False
def find_substring():
s = 'bobobnnnnbobmmmbosssbob'
cnt = 0
for i in range(len(s)):
if s[i:i+3] == 'bob':
cnt += 1
print 'bob found: ' + str(cnt)
return cnt
def main():
print(find_substring())
main()
if substring in string:
print(string + '\n Yes located at:'.format(string.find(substring)))