什么是捕获这些元素的最佳正则表达式?

时间:2013-01-23 01:36:42

标签: regex

给出如下输入(其中可以有任意数量的逗号分隔值;在此示例中仅为3)

Abc (xyz) asd 123 - 1 MMM, xcz8c.8x - 5 MMMs, hello - world - 1 MMM

将捕获以下3个元素的正则表达式是什么:

  Abc (xyz) asd 123
  xcz8c.8x
  hello - world

2 个答案:

答案 0 :(得分:1)

在python中:

>>> import re
>>> s = 'Abc (xyz) asd 123 - 1 MMM, xcz8c.8x - 5 MMMs, hello - world - 1 MMM'
>>> re.findall(r'[ |,]*(.*?) - \d+ MMMs?', s)
['Abc (xyz) asd 123', 'xcz8c.8x', 'hello - world']

答案 1 :(得分:1)

([^,]*?)\s-\s\d+\sMMMs?

这可能不是最好的,但我已经测试了它here