首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正则表达式仅当捕获组出现在字符串的最后时匹配

正则表达式仅当捕获组出现在字符串的最后时匹配
EN

Stack Overflow用户
提问于 2020-11-06 22:48:04
回答 1查看 42关注 0票数 1

我在Pandas数据帧中有许多行,如下所示

代码语言:javascript
运行
复制
df = pd.DataFrame({'Text':['k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium', 
'k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_pseudolongum',
'k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_pseudolongum|t__GCF_000421365']})

我想在字符串的末尾返回与g__匹配的字符串,例如使用下面的正则表达式:

代码语言:javascript
运行
复制
g__$

我希望得到这样的结果:

代码语言:javascript
运行
复制
k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium

但不包括这些:

代码语言:javascript
运行
复制
k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_pseudolongum
k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_pseudolongum|t__GCF_000421365
EN

Stack Overflow用户

回答已采纳

发布于 2020-11-06 23:16:35

您可以使用

代码语言:javascript
运行
复制
df = df[df['Text'].str.contains(r'\|g__[^|]*$')]

\|g__[^|]*$正则表达式匹配|g__,然后匹配|以外的零个或多个字符,直到字符串的末尾。

请参阅regex demo

Pandas测试:

代码语言:javascript
运行
复制
import pandas as pd
df = pd.DataFrame({'Text':['k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium', 
'k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_pseudolongum',
'k__Bacteria|p__Actinobacteria|c__Actinobacteria|o__Bifidobacteriales|f__Bifidobacteriaceae|g__Bifidobacterium|s__Bifidobacterium_pseudolongum|t__GCF_000421365']})
df = df[df['Text'].str.contains(r'\|g__[^|]*$')]
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64716737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档