gpt4 book ai didi

python - 如何使用正则表达式分隔符来处理特殊情况?

转载 作者:行者123 更新时间:2023-12-05 05:39:41 35 4
gpt4 key购买 nike

我有一个这样的字符串,分隔符是 |字符,

string = "1234|Google | Alphabet|pest||pp| |||r"

我正在寻找的输出是,

[1234, Google | Alphabet, pest, "", pp, " ", "", "", r]

我用过这个,

output = re.split("(?<=\w)\|(?=\w)", string) # but this is giving me wrong output

这里的问题是 Google | Alphabet 是一个单词,因为 | 两端由空格分隔。基本上,如果一个 | 的两边都有空格,那么它本身就是那个词的一部分,否则将它分开。有人可以告诉我一个好的正则表达式来正确拆分它。我想在 pandas.read_csv 中使用这个正则表达式。

我可以编写代码来手动处理此问题,但我正在寻找一种更好的方法来用作 sep(即,因为它支持正则表达式) in pd.read_csv

谢谢。

最佳答案

您还可以将 asserting not a whitespace char 拆分到左侧或右侧:

\|(?!\s)|(?<!\s)\|

Regex demo | python demo

import re

s = "1234|Google | Alphabet|pest||pp| |||r"

print(re.split(r"\|(?!\s)|(?<!\s)\|", s))

输出

['1234', 'Google | Alphabet', 'pest', '', 'pp', ' ', '', '', 'r']

关于python - 如何使用正则表达式分隔符来处理特殊情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72622927/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com