美文网首页
Python 字符串解析与正则表达式

Python 字符串解析与正则表达式

作者: Bioinfor生信云 | 来源:发表于2023-11-14 10:21 被阅读0次

字符串解析

字符串解析是从一大段信息中,解析出自己需要的内容。比如从下面的字符中解析出序列ID Z78533.1和物种名C.irapeanum

s1 = '>gi|2765656|emb|Z78531.1|CFZ78531 C.fasciculatum 5.8s rRNA gene'
s2 = '>gi|2765658|emb|Z78533.1|CFZ78533 C.irapeanum 5.8s rRNA gene'
s3= '>gi|2765658|emb|Z78533.1|CFZ78533 C.irapeanum 5.8s rRNA gene'
s1

方法一:字符串分割

可以使用字符串分割的方式,而更为强大的工具就是正则表达式

infos = s1.replace('|',' ').split(' ')
seq_id = infos[3]
species = infos[5]
print('seq_id',seq_id)
print('species',species)

方法二:正则表达式

字符 含义头
^ 匹配字符串的开头
. 匹配任意字符,除了换行符
x\ y
[xyz] 'x'或 'y' 或 'z'
[^xyz] 除了'x' 或 'y'或'z',以外的字符
N* 匹配 0个或多个'N'
N+ 匹配 1个或多个'N'
N? 非贪婪方式
N{2} 匹配 2个'N'
N{2,} 匹配2个以上 'N'
N{3,8} 匹配3到8个 'N'
\w 匹配数字字母下划线
\W 匹配非数字字母下划线
\s 匹配任意空白字符,等价于[\t\n\r\f]
\S 匹配任意非空字符
\d 匹配任意数字,等价于[0-9]
\D 匹配任意非数字
\n,\t等 匹配一个换行符,匹配一个制表符等

应用一:分隔字符串

import re
s1
re.split('\s+|\|',s1)

应用二:替换

phone = '184-3476-4125'
re.sub('\D','',phone)

应用三:校验是否合格

1.网址是否包含www.并且以.com或.cn结尾

m = re.search('w{3}.\w+.(com|cn)$', 'http://www.ecology.cn')
m

以下方法可以提取匹配上的信息

m.start()


m.end

m.span

m.group

2.邮箱是否包含@

n = re.search('\w+@\w+.\w+', '810234309@qq.com')
n

3.电话号码是否为11位数字,而且以1开头

v = re.search('^1\d{10}', '18434764125')
v

应用四:捕获

1.捕获ID中的编号和物种名

z = re.search('^>gi\|\d{7}\|emb\|(\S+)\|\S+\s+(\S+)\s',s1)

print("匹配上的内容为:" + z.group())

print("基因的编号为:" + z.group(1))

print("物种名为:" + z.group(2))

应用五:查找

h = '''ATCGGACTTTACCATCCAATGGATCGGACTTTACCATCCAATGGATCGGACTTTACCATCCAATGGATCGGACTTTACCATCCAATGGATCGGACTTTACCATCCAATGGATCGGACTTTACCATCCAATGGATCGGACTTTACCATCCAATGG'''

使用python内置的find或index方法只能找到特定字符首次出现的位置

h.index('GC')

我们想找到所有的AC区域

for m in re.finditer('AC',h):
  print (m.span(),m.group())

相关文章

  • 爬虫解析----BS4解析

    爬虫解析方法分为:正则解析、xpath解析、bs4解析。 正则表达式直接对html字符串进行解析(最快)。xpat...

  • Django URL传参

    1. 正则表达式匹配传参: 链接网页形如:/list/python/时,通过正则表达式匹配到字符串"python"...

  • day19-总结

    python中的正则表达式 正则表达式:用来做字符串查找,匹配,切割用的一种工具python对正则表达式的支持:提...

  • Day-15 正则表达式

    正则表达式:用来查找、匹配、切割字符串的工具 python对正则表达式的支持

  • re模块的match和search的区别

    正则表达式 首先正则表达式和python没有任何的关系,是匹配字符串的一种规则 官方定义:正则表达式是对字符串操作...

  • python的学习方向

    我的学习计划: 1、Python基础语法、python字符串解析、python时间和日历、python文件操作,数...

  • 2018-08-03 day15 正则表达式

    正则表达式:用来做字符串查找,匹配,切割的一种工具 python对正则表达式的支持:提供了re模块(python内...

  • 判断一个字符串是否是合法ip

    此题目可以使用正则表达式匹配或者字符串匹配方法进行判断 思路: python2.7正则表达式解法: python2...

  • 2018-09-11 day17-正则表达式

    正则表达式 python关于正则的支持 提供内置模块re fullmatch(正则表达式, 字符串) - 判断字符...

  • python正则表达式简要

    python 中使用正则表达式 re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函...

网友评论

      本文标题:Python 字符串解析与正则表达式

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