在Python中查找字符串中子字符串索引的5种方法 (5 Ways to Find the Index of a Substring in Strings in Python)
str.find()str.find()str.rfind()str.rfind()str.index()str.index()str.rindex()str.rindex()re.search()re.search()
str.find() (str.find())
str.find() returns the lowest index in the string where the substring sub is found within the slice s[start:end]. It returns -1 if the sub is not found.start and end are optional arguments.
str.find()返回在切片s[start:end]找到子字符串sub的字符串中的最低索引。 如果找不到该子项,则返回-1 。 start和end是可选参数。
str.find(sub,start,end)例子1.使用str.find()方法 (Example 1. Using str.find() method)

The string is banana.
线是banana 。
The substring is an.
该子是an 。
The substring occurs two times in the string.
子字符串在字符串中出现两次。
str.find(“an”) returns the lowest index of the substring an.
str.find(“an”)返回子字符串an的最低索引。
s1="banana"print (s1.find("an"))#Output:1例子2.使用str.find()方法和提到的start参数 (Example 2. Using str.find() method with the start parameter mentioned)
The substring is an.
该子是an 。
The start parameter is 2. It will start searching the substring an from index 2.
起始参数为2 。 它将开始从索引2搜索子字符串an 。
s1="banana"print (s1.find("an",2))#Output:3例子3.如果没有找到子字符串,它将返回-1 (Example 3. If the substring is not found, it will return -1)
The substring is ba.
子字符串是ba 。
The start parameter is 1 and the stop parameter is 5. It will start searching the substring from index 1 to index 5 (excluded).
起始参数为1 ,终止参数为5 。 它将开始搜索从索引1到索引5(不包括)的子字符串。
Since the substring is not found in the string within the given index, it returns -1.
由于在给定索引的字符串中找不到子字符串,因此它返回-1 。
s1="banana"print (s1.find("ba",1,5))#Output:-12. str.rfind() (2. str.rfind())
str.rfind() returns the highest index in the string where the substring sub is found within the slice s[start:end]. It returns -1 if the sub is not found.start and end are optional arguments.
str.rfind()返回在slice s[start:end]找到子字符串sub的字符串中的最高索引。 如果找不到该子项,则返回-1 。 start和end是可选参数。
str.rfind(sub,start,end)例子1.使用str.rfind()方法 (Example 1. Using str.rfind() method)

The string is banana.
线是banana 。
The substring is an.
该子是an 。
The substring occurs two times in the string.
子字符串在字符串中出现两次。
str.find(“an”) returns the highest index of the substring an.
str.find(“an”)返回子字符串an的最高索引。
s1="banana"print (s1.rfind("an"))#Output:3例子2.使用str.rfind()方法并提到开始和结束参数 (Example 2. Using str.rfind() method with the start and end parameters mentioned)
The substring is an.
该子是an 。
The start and end parameters are 1 and 4, respectively. It will start searching the substring from index 1 and index 4 (excluded).
start和end参数分别为1和4 。 它将开始从索引1和索引4(排除)中搜索子字符串。
s1="banana"print (s1.rfind("an",1,4))#Output:1例子3.如果没有找到子字符串,它将返回-1 (Example 3. If the substring is not found, it will return -1)
The substring is no.
子字符串为no 。
Since the substring is not found in the string, it returns -1.
由于在字符串中找不到子字符串,因此它返回-1 。
s1="banana"print (s1.rfind("no"))#Output:-13. str.index() (3. str.index())
Similarly to find(), str.index() returns the lowest index of the substring found in the string. It raises a ValueError when the substring is not found.
与find()类似, str.index()返回 字符串中找到的子字符串的最低索引。 当找不到子字符串时,它将引发ValueError 。
例子1.使用str.index()方法 (Example 1. Using str.index() method)
s1="banana"print (s1.index("an"))#Output:1例子2.在给定start和end参数的情况下使用str.index()方法 (Example 2. Using str.index() method with the start and end parameters given)
s1="banana"print (s1.index("an",2,6))#Output:3例子3.如果没有找到子字符串,它将引发一个ValueError (Example 3. If the substring is not found, it raises a ValueError)
s1="banana"print (s1.index("no"))#Output:ValueError: substring not found4. str.rindex() (4. str.rindex())
Similarly to find(), str.rindex() returns the highest index of the substring found in the string. It raises a ValueError when the substring is not found.
与find()类似, str.rindex()返回在字符串中找到的子字符串的最高索引。 当找不到子字符串时,它将引发ValueError 。
例子1.使用str.rindex()方法 (Example 1. Using str.rindex() method)
s1="banana"print (s1.rindex("an"))#Output:3例子2.在给定start和end参数的情况下使用str.index()方法 (Example 2. Using str.index() method with the start and end parameters given)
s1="banana"print (s1.rindex("an",0,4))#Output:1例子3.如果没有找到子字符串,它将引发一个ValueError (Example 3. If the substring is not found, it raises a ValueError)
s1="banana"print (s1.rindex("no"))#Output:ValueError: substring not found5. re.search() (5. re.search())
re.search(pattern, string, flags=0)“Scan through string looking for the first location where the regular expression pattern produces a match, and return a corresponding match object. Return
Noneif no position in the string matches the pattern; note that this is different from finding a zero-length match at some point in the string.” — Python’s official documentation“扫描字符串以查找正则表达式模式产生匹配项的第一个位置,然后返回相应的匹配对象。 如果字符串中没有位置与模式匹配,则返回
None否则,返回None。 请注意,这不同于在字符串中的某个位置找到零长度匹配。” — Python的官方文档
re.search(pattern, string): We have to mention thepatternto be searched in thestring.re.search(模式,字符串):我们不得不提一下pattern中要搜索string。- The return type matches the object that contains the starting and ending index of that pattern (substring). 返回类型与包含该模式(子字符串)的开始和结束索引的对象匹配。
We can find the
startandendindices from the match object usingmatch.start()andmatch.end().我们可以使用
match.start()和match.end()从match对象中找到start和end索引。
Match.start([group])Match.end([group])“Return the indices of the start and end of the substring matched by group; group defaults to zero (meaning the whole matched substring). Return
-1if group exists but did not contribute to the match.” — Python’s documentation“返回分组匹配的子字符串的开始和结束的索引; 组默认为零(表示整个匹配的子字符串)。 如果组存在但没有参与比赛,则返回
-1。” — Python的文档
We can get the
startandendindices in tuple format usingmatch.span().我们可以使用
match.span()获得元组格式的start和end索引。
Match.span([group])“For a match m, return the 2-tuple
(m.start(group), m.end(group)). Note that if group did not contribute to the match, this is(-1, -1). group defaults to zero, the entire match.” — Python’s documentation“对于匹配项m ,返回2元组
(m.start(group), m.end(group))。 请注意,如果group对匹配没有贡献,则为(-1, -1)。 组默认为零,即整个匹配。” — Python的文档
例子1.使用re.search() (Example 1. Using re.search())
示例2.如果在字符串中未找到子字符串,则返回None (Example 2. If a substring is not found in the string, it returns None)
import re
string = 'banana'pattern = 'no'match=(re.search(pattern, string))#Returns match objectprint (match)#Output: None结论 (Conclusion)
- Python 3.8.1 is used. 使用Python 3.8.1。
str.find(),str.rfind()— Returns-1when a substring is not found.str.find()和str.rfind()—在找不到子字符串时返回-1。str.index(),str.rindex()— Raises aValueErrorwhen a substring is not found.str.index(),str.rindex()—在找不到子字符串时引发ValueError。re.search()— ReturnsNonewhen a substring is not found.re.search()—如果找不到子字符串,则返回None。str.find(),str,index()— Returns the lowest index of the substring.str.find(),str,index()—返回子字符串的最低索引。str.rfind(),str.rindex()— Returns the highest index of the substring.str.rfind(),str.rindex()—返回子字符串的最高索引。re.search()— Returns the match object that contains the starting and ending indices of the substring.re.search()—返回包含子字符串的开始和结束索引的匹配对象。
资源(Python文档) (Resources (Python Documentation))
str.find
查找
str.index
指数
str.rfind
查找
str.rindex
索引
re.search
研究
match-objects
匹配对象
翻译自: https://medium.com/better-programming/5-ways-to-find-the-index-of-a-substring-in-python-13d5293fc76d
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/388137.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!