-1
[\w+\.]{3}

\w+\.\w+\.\w+\.

前者匹配“dra”

后来匹配“dragon.is.awesome”

我对他们有什么不理解的地方?

输入文本看起来像

我知道dragon.is.awesome但是

我知道dragon.is.awesome.because,他很棒

我知道dragon.sucks.because,他并不了不起

我知道dragon.is.dead,有人杀了他

所以我需要匹配模式 \w+ 的任何分组组合。

4

3 回答 3

3

因为第一个是字符类。

[\w+/\.]

匹配一个\w或一个+或一个/或一个字面量.。如果要缩短后者,请使用普通括号:

(\w+\.){3}

请注意,在字符类中,大多数元字符都失去了意义。所以+.*(例如)都可以被包含和匹配而不会被转义。

于 2012-10-17T21:00:13.723 回答
1

[...]是一个字符类。它匹配一个字符。[\w+\.]匹配一个字符,该字符要么是“单词”字符(字母、数字或下划线),要么是加号或点。[\w+\.]{3}连续匹配三个这样的字符。

于 2012-10-17T21:00:35.177 回答
1

[]是一个字符类,而不是一个子模式。[abc]匹配单个 a、b 或 c。

您可能的意思是(\w+\.){3},它您的第二个正则表达式匹配。

于 2012-10-17T21:01:45.453 回答