括号内的匹配整数

时间:2013-08-27 08:18:27

标签: ruby regex

我尝试了以下内容:

(\([^0-9]*\d+[^0-9]*\))

就此:

Sales rank: 398 (was 644)

但我明白了:

(was 644)

我只需要644

如何修复我的正则表达式以实现这一目标?

3 个答案:

答案 0 :(得分:2)

请尝试以下操作:

>> 'Sales rank: 398 (was 644)'[/\d+(?=\))/]
=> "644"

(?=\))用于断言该模式之后是关闭paren。 (积极向前看

<强> ALTERNATIVE

>> 'Sales rank: 398 (was 644)'.scan(/\d+/)
=> ["398", "644"]
>> 'Sales rank: 398 (was 644)'.scan(/\d+/).last
=> "644"

答案 1 :(得分:0)

您也可以将这个regex与@fattru的答案一起使用

(?<=was )\d\d\d

答案 2 :(得分:0)

使用扫描...

 >> 'Sales rank: 398 (was 644)'.scan(/\d+/)
 => ["398", "644"]
 >> 'Sales rank: 398 (was 644)'.scan(/\d+/).last
 => "644"

由于