如何编写与答案块匹配的正则表达式?

时间:2015-01-20 19:45:46

标签: regex

我想匹配答案块(粗体)。

A)我是II B) III ve IV C) III ve IV D) III ve IV E) III ve IV

到目前为止我写了这个。

(?:[A|B|C|D|E]\) )

匹配此

A)我已经 B) III ve IV C) III ve IV D) III ve IV E) III ve IV

但是当我向它追加(。*)时它匹配

A)我是II B)III ve IV C)III ve IV D)III ve IV E)III ve IV

我如何反向匹配我写的正则表达式?

我需要反向匹配文本,因为它可以是此块上的所有内容。 A)例子B)你好C)世界D)再见E)别的东西

谢谢,

http://regexr.com/3a8fq

3 个答案:

答案 0 :(得分:2)

这应该可以解决问题:

(?<=[A-E]\) ).*?(?= [A-E]\)|$)

答案 1 :(得分:2)

我会考虑使用基于前瞻性的正则表达式。

(?s)[A-E]\)\s*((?:(?!\s*[A-E]\)).)+)

答案 2 :(得分:0)

你也可以

/I(II)? ve I(I|V)/

如果您的语言支持反向前瞻:

?!(?:[A|B|C|D|E]\) )