Python中的字符串查找示例

Python中的字符串查找示例,python,string,find,Python,String,Find,我试图找到一些例子,但没有运气。有人知道网上的一些例子吗?我想知道当它找不到时会返回什么,以及如何从开始到结束指定,我猜这将是0,-1。我不确定你在找什么,你是说 您也可以使用: “sdfasdf”索引('cc') 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 'sdfasdf'。索引('cc') ValueError:未找到子字符串 >>>'sdfasdf'。索引('df') 1. 查找(sub[,start[,end]]) 返回找到子字符串sub的字符串中的最低索引,以便sub包含在

我试图找到一些例子,但没有运气。有人知道网上的一些例子吗?我想知道当它找不到时会返回什么,以及如何从开始到结束指定,我猜这将是0,-1。

我不确定你在找什么,你是说

您也可以使用:

“sdfasdf”索引('cc') 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 'sdfasdf'。索引('cc') ValueError:未找到子字符串 >>>'sdfasdf'。索引('df') 1.
查找(sub[,start[,end]])

返回找到子字符串sub的字符串中的最低索引,以便sub包含在范围[start,end]中。可选参数start和end解释为切片表示法。如果未找到子项,则返回-1


从。

老实说,在这种情况下,我只是在命令行上打开Python,然后开始胡闹:

 >>> x = "Dana Larose is playing with find()"
 >>> x.find("Dana")
 0
 >>> x.find("ana")
 1
 >>> x.find("La")
 5
 >>> x.find("La", 6)
 -1
Python的解释器使这种实验变得简单。(使用类似解释器的其他语言也是如此)

来自:

返回在切片
s[start:end]
中找到子字符串sub的字符串中的最低索引。可选参数start和end解释为切片表示法。如果未找到子项,则返回
-1

因此,有一些例子:

>>> my_str = 'abcdefioshgoihgs sijsiojs '
>>> my_str.find('a')
0
>>> my_str.find('g')
10
>>> my_str.find('s', 11)
15
>>> my_str.find('s', 15)
15
>>> my_str.find('s', 16)
17
>>> my_str.find('s', 11, 14)
-1

如果要搜索文本中字符串的最后一个实例,可以运行rfind

例如:

   s="Hello"
   print s.rfind('l')
产出:3

*不需要进口

完整语法:

stringEx.rfind(substr, beg=0, end=len(stringEx))
试试这个:

with open(file_dmp_path, 'rb') as file:
fsize = bsize = os.path.getsize(file_dmp_path)
word_len = len(SEARCH_WORD)
while True:
    p = file.read(bsize).find(SEARCH_WORD)
    if p > -1:
        pos_dec = file.tell() - (bsize - p)
        file.seek(pos_dec + word_len)
        bsize = fsize - file.tell()
    if file.tell() < fsize:
        seek = file.tell() - word_len + 1
        file.seek(seek)
    else:
        break
打开(文件\u dmp\u路径,'rb')作为文件:
fsize=bsize=os.path.getsize(文件\u dmp\u路径)
word\u len=len(搜索词)
尽管如此:
p=file.read(bsize).find(搜索单词)
如果p>-1:
pos_dec=file.tell()-(bsize-p)
file.seek(pos_dec+word_len)
bsize=fsize-file.tell()
如果file.tell()
如果x是一个字符串,您搜索y,y也是一个字符串,则有两种情况: 情况1:y存在于x中,因此x.find(y)=y在x中的索引(位置)。 情况2:y不存在,因此x.find(y)=-1这意味着在x中找不到y

试试看

myString = 'abcabc'
myString.find('a')

这会给你索引

谢谢,如果找不到,你会得到什么?谢谢,但为什么这里是-1,不是索引?我认为python更喜欢异常而不是特殊的返回值。感谢SilentGhost,我使用了您的方法。find和index是相同的功能,但在不匹配时有不同的结果。Python通常可能更喜欢异常,但许多用户也希望有一个非异常的find index方法,特别是在几乎所有其他语言中都是这样做的。这对我来说非常有用-完全忘记了0结果实际上意味着匹配!你是在问什么?您是否特别询问了find方法?谢谢,是的,只是找到方法。我找到了那个页面,但没有任何例子。页面上写着-1。你还需要知道什么?不,我是说,只是一些例子。IPython让这类事情变得更好。为什么你要选择一个而不是另一个呢?它会引发错误,而不是返回代码,在我看来,这更像python。异常不应用于流控制。所以,只有在没有异常匹配的情况下才使用index()。@Wahnfrieden:使用异常完全是pythonic。当然也不值得投反对票。@aehlke事实上,在Python中,使用异常来控制流是常见的,甚至是推荐的做法:嗨@Dave Brown,你测试过你的代码吗?我想你会发现它不会像缩进一样,因为你打错了
stringEx.rfind(substr, beg=0, end=len(stringEx))
with open(file_dmp_path, 'rb') as file:
fsize = bsize = os.path.getsize(file_dmp_path)
word_len = len(SEARCH_WORD)
while True:
    p = file.read(bsize).find(SEARCH_WORD)
    if p > -1:
        pos_dec = file.tell() - (bsize - p)
        file.seek(pos_dec + word_len)
        bsize = fsize - file.tell()
    if file.tell() < fsize:
        seek = file.tell() - word_len + 1
        file.seek(seek)
    else:
        break
myString = 'abcabc'
myString.find('a')