我的方法是把字符串反过来 ,从尾部开始匹配,因为变的只是头部
var testReg = /(com\.[^\.]*)\.?(.*)?/gi;
var url = new String("test.cnblogs.com");
var reverseUrl = url.split(".").reverse().join(".");//先对url进行反序
testReg.test(reverseUrl);//匹配
var class1 = RegExp["$1"].split(".").reverse().join(".");//对获取的结果1进行反序,这里是xxx.com
alert(class1);
var class2 = RegExp["$2"];//这里是*.的内容如果对于cnblogs.com *.为空
alert(class2);
var testReg = /(com\.[^\.]*)\.?(.*)?/gi;
var url = new String("test.cnblogs.com");
var reverseUrl = url.split(".").reverse().join(".");//先对url进行反序
testReg.test(reverseUrl);//匹配
var class1 = RegExp["$1"].split(".").reverse().join(".");//对获取的结果1进行反序,这里是xxx.com
alert(class1);
var class2 = RegExp["$2"];//这里是*.的内容如果对于cnblogs.com *.为空
alert(class2);
import java.util.regex.*;
public class aaaa {
public static void main(String[] args) {
Pattern pattern=Pattern.compile("(\\w+\\.)?(\\w+\\.\\w+)");
String url="qq.com";
Matcher matcher=pattern.matcher(url);
while(matcher.find())
{
System.out.println(matcher.group(1));
System.out.println(matcher.group(2));
} }
}
while(matcher.find())
{
System.out.println(matcher.group(1));
System.out.println(matcher.group(2));
} 这样! 谢谢
我这个这个正则是用在isapi rewrite里的
只要一个单独的正则表达式,test一下是否为本站调用(包括任何形式的二级域名,如果可以的话尽量考虑到3级域名)就ok了