Skip to main content
 首页 » 编程设计

python之如何使用正则表达式在非数字之前拆分句点

2025年05月04日29me-sa

假设我有一个字符串

line = "Apple is $3.00 higher than banana. Banana is cheap.I hate apple." 

我通常知道 line.split(".") 可以拆分大多数句子。但是,在这种情况下,如果后面没有数字,我只想在 . 处拆分。通常,我可能会执行 re.split('\.[^0-9]', line),但我不想在拆分后丢失我的第一个字符。

这是 re.split('\.[^0-9]', line) 的输出:

['Apple is $3.00 higher than banana', 'Banana is cheap', ' hate apple.'] 

我们可以看到 I 被丢弃了。

请您参考如下方法:

要执行非捕获匹配,您可以使用正负先行。这些将查看下一个匹配的模式,而不会在结果中包含该模式。 下面是一个积极的前瞻示例,它将捕获 patA 后跟 patB 的所有子字符串。
注意 patA 和 patB 是正则表达式模式“变量”

patA(?=patB)  

下面是一个否定前瞻的例子,它将捕获 patA 的所有子字符串,后面没有 patB。

patA(?!patB)  

在您的情况下,所有不带数字的小数点都应表示为

\.(?![0-9])