【发布时间】:2012-01-19 12:34:19
【问题描述】:
我试过这段代码:
public static void main(String[] args) throws Exception {
String regexp = "[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)*(\\.)[a-zA-Z]+";
String text1 = "my.name-here@my.domain-here.ext";
String text2 = "my.name-here@m@y.domain-here.ext";
String text3 = "@domain-here.ext";
String text4 = "my.name-here@";
String text5 = "my.name-here@domain-here";
String text6 = ".my.name-here@my.domain-here.ext";
String text7 = "my.name-here.@my.domain-here.ext";
String text8 = "my.name-here@.my.domain-here.ext";
String text9 = "my.name-here@my.domain-here.ext.";
String text10 = "my.na me-here@my.domain-here.ext";
String text11 = "my.name-here@my.dom ain-here.ext";
String text12 = "my..name-here@my.domain-here.ext";
String text13 = "my.name-here@my..domain-here.ext";
RE re = new RE(regexp);
System.out.println(re.match(text1));
System.out.println(re.match(text2));
System.out.println(re.match(text3));
System.out.println(re.match(text4));
System.out.println(re.match(text5));
System.out.println(re.match(text6));
System.out.println(re.match(text7));
System.out.println(re.match(text8));
System.out.println(re.match(text9));
System.out.println(re.match(text10));
System.out.println(re.match(text11));
System.out.println(re.match(text12));
System.out.println(re.match(text13));
System.out.println(Pattern.matches(regexp, text1));
System.out.println(Pattern.matches(regexp, text2));
System.out.println(Pattern.matches(regexp, text3));
System.out.println(Pattern.matches(regexp, text4));
System.out.println(Pattern.matches(regexp, text5));
System.out.println(Pattern.matches(regexp, text6));
System.out.println(Pattern.matches(regexp, text7));
System.out.println(Pattern.matches(regexp, text8));
System.out.println(Pattern.matches(regexp, text9));
System.out.println(Pattern.matches(regexp, text10));
System.out.println(Pattern.matches(regexp, text11));
System.out.println(Pattern.matches(regexp, text12));
System.out.println(Pattern.matches(regexp, text13));
}
只有第一个必须是正确的,但是...org.apache.regexp.RE 做错了。有什么解决办法吗?非常感谢。我必须通过org.apache.regexp.RE 强制执行。
更新:模式确实匹配正确(除了第一个之外都是假的),RE 说有人字符串是真的,但他们不是。
【问题讨论】:
-
请提供更多细节!使用 apache.regexp 究竟是什么不起作用?
-
RE:“请提供更多详细信息!使用 apache.regexp 究竟有什么问题?”模式确实匹配正确(除了第一个之外都是假的),RE 说有人字符串是真的,但他们不是。