这个正则表达式用来校验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]+[\/=\?%\-&_~`@[\]\':+!]*([^<>""])*$
要怎么写啊?
谢谢!!!
解决方案 »
- 帮忙!类型转换问题!急!
- 100分,讨论一个问题。
- 网络关键词频度统计分析程序
- java.lang.ArrayIndexOutOfBoundsException:搞不定啊(先进先得)数组越界?
- JAVA开发的程序在没有安装JDK的机器上可以运行吗?
- import问题,希望大家关注一下
- java的帮助文件在那里哦
- 如何截取某个网页的页面,将其源文件转化为String?
- 怎样在JBuilder7.0中输入中文标点符号?
- To masterz():高手,您能不能说具体一点,怎样“在BufferedImage/Image对象上写字“?
- 关于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”顾名思义,即发现字符串的一个匹配的部分就行。