繁体   English   中英

在第一个特殊字符Python中拆分一行

[英]Split a line at the first special character Python

所以我有一行这样的文字读入我的程序:

00001740 n 3 eintiteas aonán beith 003 @ 00001930 n 0000 ~ 00002137 n 0000 ~ 04424418 n 0000

我希望在第一个特殊角色中分成两个。 大多数情况下,该行被“@”符号拆分,但在某些情况下会出现不同的字符。 ('〜','+','#p','#m','%p','=')。

到目前为止,我让它为'@'字符工作:

def split_pointer_part(self, line):
    self.before_at, self.after_at = line.partition('@')[::2]
    return self.before_at, self.after_at

如何将此更改为适用于显示在特殊字符列表中的第一个?

您可以使用正则表达式:

>>> import re
>>> line = "00001740 n 3 eintiteas aonán beith 003 @ 00001930 n 0000 ~ 00002137 n 0000 ~ 04424418 n 0000"
>>> re.split(r'(?:#p|#m|%p|[@~+=])', line, 1)
['00001740 n 3 eintiteas aon\xc3\xa1n beith 003 ', ' 00001930 n 0000 ~ 00002137 n 0000 ~ 04424418 n 0000']

看看re.split 它的工作方式与常规拆分类似,但接受正则表达式。

例:

import re
string = "00001740 n 3 eintiteas aonán beith 003 @ 00001930 n 0000 ~ 00002137 n 0000 ~      04424418 n 0000"
print(re.split(r'\@|\~|\+|\#p|\#,|\%p|\=', string))

一种方法是检查是否出现任何特殊字符。 让我们存储变量specialChar中出现的第一个特殊字符。 您现在可以调用line.partition(specialChar)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM