新手求助:一条正则表达式

新手求助:一条正则表达式

初学perl,请教大虾们帮我翻译一下这条正则表达式表示的意思,

[Copy to clipboard] [ - ]
CODE:
$LayoutH =~ /^\s*(?:\+|-|)\d+\.?\d*\s*$/)

谢谢大家!


QUOTE:
$LayoutH =~ /^\s*(?:\+|-|)\d+\.?\d*\s*$/

=~ 绑定操作符,用于绑定$LayoutH 和 模式 ^\s*(?:\+|-|)\d+\.?\d*\s*$
// 是m//的缩写,模式匹配操作符

[Copy to clipboard] [ - ]
CODE:
^     \s                      *                            (?:\+|-|)           \d+            \.?              \d*          \s*               $
开头 空白字符[ \r\n\t]   任意个(修饰前面的\s)    +、-或者啥都没有  1个以上数字  0或1个小数点 任意个数字 任意个空白字符 结尾

匹配开头和结尾有任意个空白,有或无+、-符号的,有或无小数点的大于1的数。类似下面:
1
2.2
+33.33
-44.44
  -55.55
  +66.66
  +77.

非常感谢楼上的回答,
正则表达式中括号内的?:有点不明白,
好像还有很多类似的用法,像

[Copy to clipboard] [ - ]
CODE:
/([^\\]+)(?=$|\\|\b)/



QUOTE:
原帖由 aboy11 于 2008-10-30 15:10 发表
非常感谢楼上的回答,
正则表达式中括号内的?:有点不明白,
好像还有很多类似的用法,像

/([^\\]+)(?=$|\\|\b)/

([^\\]+)                        (?=$|\\|\b)
匹配1或多个不是\的字符,后面的情况是$(末尾),\\(\)或者\b(字边界)