Python正则表达式拆分但保留某些字符以进行拆分

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python正则表达式拆分但保留某些字符以进行拆分相关的知识,希望对你有一定的参考价值。

我有以下文字

text = "Perennials. Stolons slender. Perianth bristles 6 or 7, ca. 2 × as long as nutlet"

我想使用定义为“。 s [A-Z]”的单独分割段落。但是,我仍然希望保留原始句子中的[A-Z],这样输出就是:

['Perennials',
 'Stolons slender',
 'Perianth bristles 6 or 7, ca. 2 × as long as nutlet']

到目前为止,我所做的是:

re.split(r'.s[A-Z]', text)

但它删除了第一个字母:

['Perennials',
 'tolons slender',
 'erianth bristles 6 or 7, ca. 2 × as long as nutlet']

有人可以帮忙吗?谢谢〜

答案

使用前瞻分割:

result = re.split(r'.s(?=[A-Z])', text)
print(result)

['Perennials', 'Stolons slender', 'Perianth bristles 6 or 7, ca. 2 × as long as nutlet']

前瞻(?=[A-Z])将断言,但不消耗,点和空格后面的是大写字母。

以上是关于Python正则表达式拆分但保留某些字符以进行拆分的主要内容,如果未能解决你的问题,请参考以下文章

Javascript 和正则表达式:拆分字符串并保留分隔符

正则表达式标点符号拆分 [Python]

C# 正则表达式拆分但如果拆分失败则包含空字符串

C# 正则表达式拆分为 Java 模式拆分

拆分正则表达式以提取连续字符的字符串

当正则表达式的某些部分要保存在后续的分割字符串中时,如何使用正则表达式在R中拆分字符串?