我正在编写一些正则表达式来匹配包含用空格填充的数字元素的行,例如-2.45
. 正则表达式很简单:
/(\s*-?\d+\.\d{2})/
但是,我有一个额外的限制,即整个块仅限于七个字符。我可以修改表达式以将前导空格和数字限制在其理论最大值内:
/(\s{0,3}-?\d{1,4}\.\d{2})/
但这不是解决方案,因为\s{0,3}
匹配独立于\d{1,4}
,所以整个事情可以匹配一个从四到十一个字符的块。
有什么办法可以将这样的整个组限制为固定长度?
编辑:
为了澄清,我正在处理这七个字符组中的三个用三个空格分隔的行,因此较大的正则表达式遵循以下行:
/^(fixed length stuff at start of line)(7 char chunk)\s{3}(2nd 7 char chunk)\s{3}(3rd 7 char chunk)$/
混合了其他行,其中只有一个或两个这些数字组,带有演示性垃圾的行,以及带有其他(可能不可知的)内容的行,所以我希望我匹配的内容非常精确。