RegEx中Block Brackets中的括号

时间:2014-08-20 19:58:38

标签: regex backreference

我需要一个符合以下条件的RegEx:

(whatever)   3.4  Temp
(whatever)   7.8  Name
(whatever)  10.0  Other Name

基本上,它必须匹配开头的任何内容,然后是两个空格,两个数字,一个点和一个数字或三个空格,一个数字,一个点和一个数字,后跟两个空格等等。 / p>

这很容易与此RegEx匹配:

.*?  [\s|\d]\d\.\d  .*?

但是,我想使用反向引用提取十进制数字及其后的数字。我在尝试

.*?  [\s(\d\.\d)|(\d\d\.\d)]  (.*?)

然而,用\ 1引用它,\ 2不起作用,我认为因为我所指的括号是在'|'的可选方括号中符号。有解决方案吗?

1 个答案:

答案 0 :(得分:1)

当然,只需将空间拉出角色类。

.*?\s+([\d.]+)

但是,由于\d字面上是[0123456789.],所以只需删除字符类。由于.*?也会匹配这些前导空格,因此也请删除\s

.*?(\d+)