• python 中 查找字符串


    001、首个字符查找

    >>> seq = 'ATGTGACCCTGATTTTGAATGatgAtgAtGaTGaTg'           ## 测试字符串
    >>> seq.find('ATG')                                        ## 字符串内建函数find返回第一个匹配字符的索引
    0
    >>> seq.find('GAC')
    4
    >>> seq.find('XXX')                                        ## 若找不到,则返回-1
    -1

    002、返回字符串中指定字符的所有索引

    (base) root@PC1:/home/test2# ls
    test.py
    (base) root@PC1:/home/test2# cat test.py        ## 测试程序
    #!/usr/bin/python
    
    def str_search(str1):
        result_index = []
        start = 0
        while True:
            index = str1.find("At",start)
            if index == -1:
                return result_index
            else:
                result_index.append(index)
            start = index + len("At")
    
    seq = 'ATAtGAACCTGATTTTGAATGatgAtgAtGaTGaTg'
    print(str_search(seq))
    (base) root@PC1:/home/test2# python test.py     ## 返回字符串seq中“At”字符的所有索引
    [2, 24, 27]

    003、

    >>> seq = 'ATGTGACCCTGATTTTGAATGatgAtgAtGaTGaTg'     ## 测试序列
    >>> re.findall('ATG',seq)
    ['ATG', 'ATG']
    >>> re.finditer('ATG',seq)
    <callable_iterator object at 0x7f13054602b0>
    >>> for i in re.finditer('ATG',seq):                     ## 返回匹配字符的span
    ...     print(i)
    ...
    <re.Match object; span=(0, 3), match='ATG'>
    <re.Match object; span=(18, 21), match='ATG'>
    >>> [pos.start() for pos in re.finditer('ATG',seq)]      ## 利用列表内循环返回匹配字符串首个字符的索引   
    [0, 18]

    004、 查找字符串 忽略大小写

    >>> seq = 'ATGTGACCCTGATTTTGAATGatgAtgAtGaTGaTg'          ## 测试序列
    >>> re.findall('ATG',seq,flags=re.IGNORECASE)             ## 增加 flags = re.IGNORECASE 忽略大小写
    ['ATG', 'ATG', 'atg', 'Atg', 'AtG', 'aTG', 'aTg']
    >>> seq = 'ATGTGACCCTGATTTTGAATGatgAtgAtGaTGaTg'          ## 测试序列
    >>> re.findall('ATG',seq,flags=re.IGNORECASE)
    ['ATG', 'ATG', 'atg', 'Atg', 'AtG', 'aTG', 'aTg']
    >>> [pos.start() for pos in re.finditer('ATG', seq, flags=re.IGNORECASE)]   ## 利用列表内循环结构返回索引
    [0, 18, 21, 24, 27, 30, 33]

    参考:https://mp.weixin.qq.com/s?__biz=MzkyMTI1MTYxNA==&mid=2247496936&idx=1&sn=63eb0ed21f13af872ea7021b6b8b5b06&chksm=c184ce99f6f3478f07f4686abe3c8a82e7b7a1cc4d008c4bd49344f0759e9898bce06981c9fe&scene=178&cur_album_id=2173400650154409988#rd

  • 相关阅读:
    Log4j appender、layout
    EhCache缓存框架的使用
    Log4j rootLogger根配置以及4种日志级别
    开发chrome 插件, background.js中 console log 看不到解决方法
    Windows cmd 长时间不输出新内容 直到按下ctrl + c 取消或者回车的解决办法
    如何查看当前分支从哪个支线创建而来
    C# 获取相对路径的字符串
    解决adobe air sdk打包 apk后自动在包名前面加上air. (有个点)前缀的问题
    sublime text 输入法候选词不跟随光标
    Windows 批处理设置dns ,解决能上qq不能开网页
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/16579832.html
Copyright © 2020-2023  润新知