0

我正在尝试"john.doe"使用此正则表达式匹配模式 , :

 ^(([a-zA-Z0-9_\.-]+)\.([a-zA-Z0-9_\.-]))/?$

我无法让它匹配。

4

3 回答 3

1

正则表达式只是过大

list($name1, $name2) = explode('.', $name, 2);
于 2012-04-28T18:07:36.487 回答
0

正则表达式/^([\w\-]+)\.([\w\-]+)$/应该适用于您正在尝试做的事情。

于 2012-04-28T18:22:50.293 回答
-1

就像 Dmitri Chubarov 所说(归功于他),您只需+在第二组添加一个标志:

^(([a-zA-Z0-9_\.-]+)\.([a-zA-Z0-9_\.-]+))/?$

^((([a-zA-Z0-9_-]+\.)*[a-zA-Z0-9_-]+)\.(([a-zA-Z0-9_-]+\.)*[a-zA-Z0-9_-]+))/?$

这将适用于:

jhon.doe
this.also.work
this.will.also.work

但不是:

x..
..x
..
...
....
.....

http://regexpal.com/?flags=gm®ex=%5E(((%3F%3A%5Ba-zA-Z0-9_-%5D%2B%5C .)*%5Ba-zA-Z0-9_-% 5D%2B)%5C.((%3F%3A%5Ba-zA-Z0-9_-%5D%2B%5C.)*%5Ba-zA-Z0-9_-%5D%2B))%2F%3F %24&input=john.doe%0Afirst.second%0Aand.this.works%0Aand.this.also.works%0Ax.x%0Ax..%0A..x%0A..%0A...%0A.. ..%0A.....

于 2012-04-28T17:37:04.667 回答