写正则表达式

时间:2014-05-06 17:42:41

标签: ruby regex

我有一个字符串,可以使用以下格式

  

(2级)(1-4yo +)(2m5f110y) 2mf 好15

     

(2级)(4yo)(2m5f110y)2m5½f Standart 2 hdles

     

(2级)(2m5f110y) 2m5f110y

     

(2级)(4yo +) 3m 好10个小时

     

(2级) 2m5f 好10

     

(2级)(4yo +) 2m5f110y 好10个小时

帮助创建一个将以粗体

搜索含义的表达式

2 个答案:

答案 0 :(得分:2)

我会建议这样的事情:

/\) (?!.*\))(\S+)/

rubular demo

或者,如果您不想拥有捕获组,但可能更慢:

/(?<=\) )(?!.*\))\S+/

rubular demo

(?!.*\))是一个负面的预测。如果内部匹配,则整个匹配将失败。因此,如果.*\)匹配,则匹配失败,换句话说,如果匹配中的该位置后面有),则会阻止匹配。

在第二个正则表达式中,(?<=\) )是一个积极的外观,它确保在比赛开始之前有)

答案 1 :(得分:0)

使用Ruby 2.0,您可以使用:

^\(Class 2\)(?: \([^)]*\))* \K\S+