从连字符行分隔文本

时间:2015-07-13 15:31:04

标签: regex python-2.7 parsing

我想知道是否有比我目前正在解析此文件更好的方法。我有一个字符串,其格式为:

[Chunk of text]
--------------------
[Another chunk of text]

(可以有多个文本块,它们之间有相同的分隔符)

我正在尝试将文本块解析为列表的元素,我可以使用data.split('-'*20) [在这种情况下],但是如果没有正好20个连字符,则拆分将无法按预期工作。我一直在玩正则表达式,但目前我不确定可以使用的正确的正则表达式。

在这种情况下我是否应该使用更好的方法,或者是否应该使用正则表达式来反对.split()方法?

2 个答案:

答案 0 :(得分:1)

我会尝试将re.split()与正则表达式--+一起使用,这意味着:

  1. - - 一个连字符
  2. -+ - 一个或多个连字符
  3. ...这种方式不会匹配单个连字符,但不止一个,或者你可以使用-{2,},这意味着两个或更多。

答案 1 :(得分:1)

你想要一个正则表达式分割。我不是python-literate,但我在official 2.7.10 documentation找到了这个函数,并根据你的情况进行了修改:

>>> re.split('\n\-{4,}\n', input)
  • 4是您想要匹配的最小破折号。
  • \n是之前和之后的换行符。你可能不想要那些文字。