gpt4 book ai didi

python - RE 拆分多个参数 | (或)不返回 python

转载 作者:太空狗 更新时间:2023-10-29 21:24:51 25 4
gpt4 key购买 nike

我在 python 中使用 RE 表达式并尝试按句点和感叹号拆分一段文本。但是,当我拆分它时,结果为“无”

a = "This is my text...I want it to split by periods. I also want it to split \
by exclamation marks! Is that so much to ask?"

这是我的代码:

re.split('((?<=\w)\.(?!\..))|(!)',a)

请注意,我有这个 (?<=\w).(?!..) 因为我希望它避免省略号。然而,上面的代码吐出:

['This is my text...I want it to split by periods', '.', None, ' \
I also want it to split by exclamation marks', None, '!', \
' Is that so much to ask?']

如您所见,在句号或感叹号所在的位置,它在我的列表中添加了一个特殊的“无”。为什么会这样,我该如何摆脱它?

最佳答案

尝试以下操作:

re.split(r'((?<=\w)\.(?!\..)|!)', a)

你得到了 None因为您有两个捕获组,并且所有组都包含在 re.split() 中结果。

所以任何时候你匹配 .第二个捕获组是 None , 以及任何时候你匹配 !第一个捕获组是 None .

结果如下:

['This is my text...I want it to split by periods',
'.',
' I also want it to split by exclamation marks',
'!',
' Is that so much to ask?']

如果您不想包含 '.''!'在您的结果中,只需删除整个表达式周围的括号:r'(?<=\w)\.(?!\..)|!'

关于python - RE 拆分多个参数 | (或)不返回 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11320231/

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