python - 多行按照 ":"拆分

标签 python regex split

我有一组文件组成如下:

Product: Name
Description: description of product

我只想提取名称和描述的内容,而不提取 'Product:''Description:'。为此,我这样做:

div = re.split('Product:\s+|Description:\s+', contentOfFile)

问题是我得到一个包含 3 个元素的表格,而不是 2 个元素,开头带有 ' '(空格)。我不知道是否总是考虑空间,因为在这种情况下我只想得到:

["Name","description of product"]

最佳答案

让我们简化您的示例。如果我们在管道而不是您的正则表达式上拆分会怎样?

>>> "|a|b".split('|')
['', 'a', 'b']

如果字符串以分隔符开头,split 将在返回值中添加一个额外的空元素。现在在您的例子中,分隔符是一个正则表达式,但类似地,您的字符串以与该表达式匹配的内容开头,因此第一个返回的元素是一个空字符串。

为了解决这个问题,你可以跳过第一个元素

div = re.split('Product:\s+|Description:\s+', contentOfFile)[1:]

关于python - 多行按照 ":"拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28260709/

相关文章:

c# - 正则表达式匹配西里尔字母中可能包含连字符的三个单词

python - 正确的正则表达式是什么?

c++ - 用于类 python 函数参数解析的正则表达式

string - 在 MATLAB 中将长字符串拆分为子字符串的最有效方法

excel - 遍历数据透视表并将每个字段的详细信息保存在具有字段名称的单独工作簿中

python - Pandas:更改某一特定列的多级列名称

Python导入模块函数

python - 如何制作一组既可以同步又可以异步使用的函数?

python - vlookup 相当于使用 pandas 连接 2 个表

r - 使用 r 从(地址)字符串中提取门牌号