我想从csv-fi中提取字符串的某些部分

2024-10-04 05:21:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有大量列包含此类数据:

DE-JP-202/2066/A2@qwier.cu/68
NL-LK-02206/2136/A1@ozmmfts.de/731
OM-PH-31303222/3671/Z1@jtqy.ml/524

我想提取“@”和“.”之间以及“.”和“/”之间的字符串 分成两个分开的柱

比如:

txt 1      txt 2
qwier       cu
ozmmft      de
jtqy        ml

已尝试:

x = dane.str.extract(r'@(?P<txt1>\d)\.(?P<txt2>[ab\d])/')

但不起作用


Tags: 数据txta2a1nldemljp
2条回答

如果字符串的格式都只有1@和1.。您可以执行以下操作:

s = 'DE-JP-202/2066/A2@qwier.cu/68'

column1 = s.split('@')[1].split('.')[0]

column2 = s.split('@')[1].split('.')[1].split('/')[0]

如果您想得到2个捕获组,可以使用2negated character classes

在第一组中,匹配1+乘以除点[^.]+以外的任何字符

在第二组中,匹配1+乘以除正斜杠[^/]+以外的任何字符

@(?P<txt1>[^.]+)\.(?P<txt2>[^/]+)/

Regex demo

相关问题 更多 >