这个正则表达式用来校验URL:RegExp = new RegExp(/^http:\/\S+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/);在js里面直接这样写,就可以用,然后我在另外一个java文件中要实现相同的校验逻辑,要怎么写?我写成这样:String regxp = "^http:\\/\\S+\\.[A-Za-z0-9]+[\\/=\\?%\\-&_~`@[\\]\\':+!]*([^<>\"\"])*$";
Pattern urlPattern = Pattern.compile(regxp);
Matcher urlMatcher = urlPattern.matcher(value);
if (urlMatcher.find()) {
return true;
}
可是提示出错:
Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 59
^http:\/\S+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>""])*$
要怎么写啊?
谢谢!!!
Pattern urlPattern = Pattern.compile(regxp);
Matcher urlMatcher = urlPattern.matcher(value);
if (urlMatcher.find()) {
return true;
}
可是提示出错:
Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 59
^http:\/\S+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>""])*$
要怎么写啊?
谢谢!!!
解决方案 »
- SWT Browser 问题.只有20分了 不好意啊..希望知道的回答下..
- 我觉得 byte 这个数据类型是多余的。。。
- 求教用Java实现网站数据采集方案?
- netbeans下是否缺少该功能,请大家指点(eclipse有该功能)
- 一个问题。。int 跟 byte的问题
- 运行在两个TOMCAT的两套程序怎样通信?
- java初学,很基础的问题求助各位大虾
- TCP通讯,这种情况怎么使用线程池?
- 加密的问题
- new几个相同的类,对于方法(method)的内存分配问题?大家公用一块方法的空间,还是每个都有自己的空间?
- 关于toString
- 很难解决的一个问题..byte[] 与String的相互转换!
String str = "^http:\\/\\S+\\.[A-Za-z0-9]+[\\/=\\?%\\-&_~`@[\\]\\\':+!]*([^<>\\\"\\\"])*$";
给你推荐一个新的:^((http|https|ftp|rtsp|mms):(//|\\\\){1}((([A-Za-z0-9_-:])+[.])|([A-Za-z0-9_-.:])+[.]){1,}(net|com|cn|org|cc|tv|[0-9]{1,3})(\S*/)((\S)+[.]{1}(jpg|jpeg|gif|png|\S*?){1}))$校验例:
import java.util.regex.*;// 表达式对象
Pattern p = Pattern.compile("^((http|https|ftp|rtsp|mms):(//|\\\\\\\\){1}((([A-Za-z0-9_-:])+[.])|([A-Za-z0-9_-.:])+[.]){1,}(net|com|cn|org|cc|tv|[0-9]{1,3})(\\S*/)((\\S)+[.]{1}(jpg|jpeg|gif|png|\\S*?){1}))$");// 创建 Matcher 对象
Matcher m = p.matcher("your string");// 是否完全匹配
boolean yesorno = m.matches();
---------------------------------------------------------------
我测这个不好用,估计你这是有针对的特例
String pattern = "[\\-\\w]+";
Pattern p = Pattern.compile("^[\\w\\-]*$");// 创建 Matcher 对象
Matcher m = p.matcher("your string");// 是否完全匹配
boolean yesorno = m.matches();
^$看情况加
-----------
呵呵,没看清题,steedhorse(晨星)正解
谢谢.我试了一下,为什么字符串"sdf_d043-!>"也返回true?
我只需要字符"-"或"_"//String pattern = "[_0-9a-zA-Z\\-]+";
String regxp = "[\\-\\w]+";
Pattern urlPattern = Pattern.compile(regxp);
Matcher urlMatcher = urlPattern.matcher("sdf_d043-!>");
// System.out.println("url value :: "+value);
System.out.println("result: "+urlMatcher.find());
String regxp = "^[\\-\\w]+$";
“Matcher.find”,“find”顾名思义,即发现字符串的一个匹配的部分就行。