python - 提取单词直到某个符号
问题描述
嗨,我有这个 uniprot gff 数据,看起来像
+--------+--------+-------+------+------------------------------------------------------------------------------------------------------+
| Entry | check | start | end | Domains |
+--------+--------+-------+------+------------------------------------------------------------------------------------------------------+
| O75581 | Repeat | 63 | 106 | Note=LDL-receptor class B 1 |
| O75581 | Repeat | 150 | 193 | Note=LDL-receptor class B 3 |
| O75581 | Domain | 282 | 324 | Note=EGF-like 1 |
| O75581 | Domain | 1248 | 1286 | Note=LDL-receptor class A 1;Ontology_term=ECO:0000255;evidence=ECO:0000255|PROSITE-ProRule:PRU00124 |
| O75581 | Domain | 1287 | 1323 | Note=LDL-receptor class A 2;Ontology_term=ECO:0000255;evidence=ECO:0000255|PROSITE-ProRule:PRU00124 |
| O75581 | Domain | 1325 | 1361 | Note=LDL-receptor class A 3;Ontology_term=ECO:0000255;evidence=ECO:0000255|PROSITE-ProRule:PRU00124 |
| P13688 | Domain | 35 | 142 | Note=Ig-like V-type;Ontology_term=ECO:0000250;evidence=ECO:0000250|UniProtKB:P31997 |
| P13688 | Domain | 145 | 232 | Note=Ig-like C2-type 1;Ontology_term=ECO:0000255;evidence=ECO:0000255|PROSITE-ProRule:PRU00114 |
| P13688 | Domain | 237 | 317 | Note=Ig-like C2-type 2;Ontology_term=ECO:0000255;evidence=ECO:0000255|PROSITE-ProRule:PRU00114 |
| P13688 | Domain | 323 | 413 | Note=Ig-like C2-type 3;Ontology_term=ECO:0000255;evidence=ECO:0000255|PROSITE-ProRule:PRU00114 |
| P19022 | Domain | 160 | 267 | Note=Cadherin 1;Ontology_term=ECO:0000255;evidence=ECO:0000255|PROSITE-ProRule:PRU00043 |
| P19022 | Domain | 268 | 382 | Note=Cadherin 2;Ontology_term=ECO:0000255;evidence=ECO:0000255|PROSITE-ProRule:PRU00043 |
| P19022 | Domain | 383 | 497 | Note=Cadherin 3;Ontology_term=ECO:0000255;evidence=ECO:0000255|PROSITE-ProRule:PRU00043 |
| Q13586 | Domain | 132 | 200 | Note=SAM;Ontology_term=ECO:0000255;evidence=ECO:0000255|PROSITE-ProRule:PRU00184 |
| P04629 | Repeat | 90 | 113 | Note=LRR 1 |
| P04629 | Repeat | 116 | 137 | Note=LRR 2 |
+--------+--------+-------+------+------------------------------------------------------------------------------------------------------+
我正在尝试提取域名列df['Domains]
。使用以下代码,我接近获得域名的前 2 3 个单词,但不能普遍使用。
for row in df['Domains']:
print(re.findall(r'Note=(\w*)(.?)(\w*)', row))
这给出了这样的东西
[('LDL', '-', 'receptor')]
[('LDL', '-', 'receptor')]
[('EGF', '-', 'like')]
[('Ig', '-', 'like')]
[('Ig', '-', 'like')]`
所以,我希望改变我的方法,让一切都在行后开始,在行Note=
前;
或行尾结束。我怎样才能得到这个?
解决方案
请您尝试以下操作。
for row in df['Domains']:
print(re.findall(r'Note=([^;]*)', row))
推荐阅读
- php - 创建留言簿并获取“mysqli_query() 期望参数 1 为 mysqli,给定字符串 > in”
- angular - Angular:将数据从 child1 传递到 parent 到 child2
- javascript - Google Books API - TypeError: Failed to fetch
- php - 如何扩展 Laravel 内置的身份验证以处理控制器构造函数中的授权?
- jquery - 选择尺码时动态更新对应价格
- javascript - 如何避免每次在 node.js/javascript 中加载的开销
- chef-infra - 厨师属性设置为另一个属性
- snakemake - 如何访问 Snakefile 中的 snakmake 选项
- angular - 动态模块导入不会在服务器初始运行时编译
- jquery - 过滤元素jquery