关于二级域名的正则分析
同时匹配*.xxx.com和xxx.com,分组成两组,第一个组是*.的内容,第二组是xxx.com 这样的正则如何写??请教
我现在是([^\.]*[\.]?)(.+),但是这样如果是xxx.com,第一组的内容就会变成xxx.,这不是我要的,如果是xxx.com,分组后应该第一组里面是空。
------解决方案--------------------我的方法是把字符串反过来 ,从尾部开始匹配,因为变的只是头部
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);
------解决方案--------------------用java写的 我还不会用javascript 输入匹配的字符串 都差不多 你看看吧
package test;
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));
}
}
}
------解决方案--------------------忘了问了 在js里怎么得到 正则匹配的内容啊? 就像java里的
while(matcher.find())
{
System.out.println(matcher.group(1));
System.out.println(matcher.group(2));
} 这样! 谢谢
------解决方案--------------------看下这个:
http://jorkin.reallydo.com/article.asp?id=388
很好很强大.