regex Python正则表达式由多个分隔符拆分

fnatzsnv  于 2022-11-26  发布在  Python
关注(0)|答案(2)|浏览(155)

假设“我想吃鱼,我想买车,所以我必须赚钱”。
我想把这个句子分成
【“我想吃鱼”,“我想买车”,所以,“我必须赚钱”】
我在试着把句子分开

re.split('.|and', sentence)

不过,它会以'.'、'a'、' n '和' d '分割句子。
我怎样才能用.和and把句子分开呢?

rjjhvcjd

rjjhvcjd1#

除了转义点(.)(它匹配正则表达式中的任何非换行符)之外,您还应该匹配任何前导空格或尾随空格,以便拆分的分隔符消耗结果中不需要的前导空格和尾随空格。使用正预视模式在末尾Assert以下非空格字符,以避免由尾随点进行拆分:

re.split('\s*(?:\.|and)\s*(?=\S)', sentence)

这会传回:

['I want to eat fish', 'I want to buy a car', 'Therefore, I have to make money.']

演示:https://replit.com/@blhsing/LimitedVastCookies

zwghvu4y

zwghvu4y2#

您需要在正则表达式中转义.

import re

s = "I want to eat fish and I want to buy a car. Therefore, I have to make money."

re.split('\.|and', s)

结果:

['I want to eat fish ',
 ' I want to buy a car',
 ' Therefore, I have to make money',
 '']

相关问题