帮忙改下正则表达式. 谢谢
public static void main(String[] args)
{
String str = "http://localhost:8080/sshframework/param/queryParamData.action?vpar=2012-8-17-10-26-16-0.40798535273884656&status=&pageNo=1&dtsNo=&versionNo=&pageSize=10&dateEnd=&dateBegin=&applyPerson=¶mType=&";
String str1 = "http://localhost:8080/sshframework/param/queryParamData.action?";
String reg = "/(\\w+)(/\\w+)(\\.action)(\\?vpar)";
Pattern p = Pattern.compile(reg);
Matcher mt = p.matcher(str);
Matcher m = p.matcher(str1);
String nameSpace = "";
if (mt.find())
{
nameSpace = mt.group(1);
}
System.out.println(nameSpace);
if (m.find())
{
System.out.println(m.group(1));
}
}
上面是 我改进的一个正则表达式,但是达不到要求、
我需求是:
当有.action?vpar的时候 不取param这个字符串,并且返回为空字符串。
当只有.action的时候取param 。 并且返回这个字符串。
[解决办法]
public static void main(String[] args) { String str = "http://localhost:8080/sshframework/param/queryParamData.action?vpar=2012-8-17-10-26-16-0.40798535273884656&status=&pageNo=1&dtsNo=&versionNo=&pageSize=10&dateEnd=&dateBegin=&applyPerson=¶mType=&"; String str1 = "http://localhost:8080/sshframework/param/queryParamData.action?"; String reg = "/(\\w+)(/\\w+)(\\.action\\?)$"; Pattern p = Pattern.compile(reg); Matcher mt = p.matcher(str); Matcher m = p.matcher(str1); String nameSpace = ""; if (mt.find()) { nameSpace = mt.group(1); } System.out.println(nameSpace); if (m.find()) { System.out.println(m.group(1)); } }
[解决办法]