负括号表达式中的点运算符

时间:2009-12-24 00:26:06

标签: ruby regex

Ruby in Tim Bray的Wide Finder基准测试(http://wikis.sun.com/display/WideFinder/The+Benchmark)有这一行:

%r{GET /ongoing/When/\d\d\dx/(\d\d\d\d/\d\d/\d\d/[^ .]+) }

我一直在使用正则表达式,但我不确定“。”的重点。是。它似乎匹配任何不是空格的东西,但[^]无论如何都会这样做。

当我第一次看到它时,它看起来像是除了可能的换行符之外什么都不匹配。

有人可以解释这个表达式的行为吗?

1 个答案:

答案 0 :(得分:7)

[^ .]表示匹配除空格或文字句点之外的任何单个字符。在方括号内时,句点没有特殊含义。