美文网首页
Python API快餐教程(1) - 字符串查找API

Python API快餐教程(1) - 字符串查找API

作者: Jtag特工 | 来源:发表于2017-08-02 19:57 被阅读158次

    字符串处理相关API

    字符串是7种序列类型中的一种。
    除了序列的操作函数,比如len()来求字符串长度之外,Python还为字符串提供丰富到可以写个编辑器的API.

    查找类API

    首先,下面的查找API都是为了查找位置,或者查一共有几次这样的操作。
    如果只是想判断一个字符串是不是另一个字符串的子串的话,使用序列的in运算符就可以了。
    例:

    str1 = "hahahahaha,heiheihei"
      
    if 'haha' in str1:
        print('haha is a substring of '+str1)
    else:
        print('haha is NOT a substring of '+str1)
    

    数数有多少个匹配的字符串 - count函数

    原型:str.count(sub[, start[, end]])

    • sub:要查找的子字符串
    • start:起始位置
    • end:结束位置

    字符串的count函数可以数出来有多少次匹配,我们看个例子,有5个ha和3个hei

    str1 = "hahahahaha,heiheihei"
    
    print(str1.count('ha'))
    print(str1.count('haha'))
    

    输出为5和2.
    haha只能匹配两次。

    再加上扩展参数:

    print(str1.count('ha',1))
    print(str1.count('ha',0,5))
    

    不抛异常的查找 find和rfind

    find函数的行为是,如果能找到,则返回在序列中的坐标,如果找不到,则返回-1. rfind是从右向左查找。我们来看例子:

    print(str1.find('haha'))
    print(str1.rfind('haha'))
    

    输出值为0和6.

    找不到的例子:

    print(str1.find('hoho'))
    print(str1.rfind('hi'))
    

    输出值都是-1.

    完整形式:

    • str.find(sub[, start[, end]])
    • str.rfind(sub[, start[, end]])

    会抛异常的查找:index和rindex

    index和rindex的功能与find和rfind基本上一致,除了在找不到时会抛出ValueError异常而不是返回-1.

    例:

    >>> str1 = "hehe"
    >>> str1.index('ha')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: substring not found
    

    所以我们需要加try...except语句来处理之:

    try:
        str1.index('hoho')
    except ValueError:
        print('hoho cannot be found in '+str1)
    

    从头查找和从尾查找 startswith, endswith

    有时候,我们希望做从头匹配或者匹配尾部。这时候就要用到startswith函数和endswith函数。例:

    print(str1.startswith('ha'))
    print(str1.endswith('hei'))
    

    这两个返回值均为True.

    如果需要更复杂的匹配,还是需要正则表达式。与Java等语言不同,Python中的正则表达式有专门的模块,字符串的API不负责这个事情。

    小结

    • 判断字符串是不是在别一个串中能找到:in
    • 判断是否左匹配:startswith
    • 判断是否右匹配:endswith
    • 数数能匹配多少次:count
    • 不抛异常的求匹配位置:find,rfind
    • 会抛异常的求匹配位置:index,rindex

    相关文章

      网友评论

          本文标题:Python API快餐教程(1) - 字符串查找API

          本文链接:https://www.haomeiwen.com/subject/rwnelxtx.html