我正在尝试使用
中描述的正则表达式模式检查方法How to check if a given Regex is valid?
import java.util.regex.Pattern
import java.util.regex.PatternSyntaxException
public class RegexTester {
public static void main(String[] arguments) {
String userInputPattern = arguments[0];
try {
Pattern.compile(userInputPattern);
} catch (PatternSyntaxException exception) {
System.err.println(exception.getDescription());
System.exit(1);
}
System.out.println("Syntax is ok.");
}
}
(使用Google Web ToolKit)但我一直收到“失败”消息“:
插件无法连接到127.0.0.1:9997
的开发模式服务器
每当我使用Pattern.compile(String)
方法时。
有谁知道我做错了什么?
答案 0 :(得分:2)
您应该使用'com.google.gwt.regexp.shared.RegExp',而不是'java.util.regex。*'。
答案 1 :(得分:0)
某些字符具有特殊含义,称为元字符。 所以提供下面的示例代码。
我建议你去看看 metacharacters和java.util.regex.Pattern
String s = "+1234567890PrasadBelhe1234567890";
System.out.println("args[0]:"+args[0]);
if(args[0].startsWith("+")||args[0].startsWith("?")||args[0].startsWith("*")){
System.out.println("Invalid regex :"+args[0]);//added basic
System.exit(1);
}
else{
if(args[0].equals(".classpath")) args[0]=".";//java default
//Pattern p = Pattern.compile(Pattern.quote(args[0]));
Pattern p = Pattern.compile(args[0]);
Matcher mymacher = p.matcher(s);
System.out.println("Finding results...");
while(mymacher.find()) System.out.println(s.substring( mymacher.start(), mymacher.end()));
System.out.println("Syntax is ok:"+args[0]);
}