小弟有关正则表达式的问题,各位大神求解 需要验证一个编码,但是编码由字母、数字和下划线组成或横线组成,期中下划线和横线不能在第一位和最后一位,谢谢大神们了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 上个帖子不是回复你了么?你到底有啥不满意?<script language="javascript">var reg = /^[^_\-](\w|\-)*[^_\-]$/;var str1 = "aba-_1212-_34";var str2 = "aba34";var str3 = "aba 34";var str4 = "-aba-_1212-_34";var str5 = "aba-_1212-_34_";alert(str1 + ": " + reg.test(str1) + "\n" + str2 + ": " + reg.test(str2) + "\n" + str3 + ": " + reg.test(str3) + "\n" + str4 + ": " + reg.test(str4) + "\n" + str5 + ": " + reg.test(str5) + "\n");</script> 这个不行,我是在java里面写的 Java也一样的,修改下就行了:String reg = "^[^_\\-](\\w|\\-)*[^_\\-]$";String str1 = "aba-_1212-_34";str1.matches(reg); 试试这个,不知道能否满足你的要求: public static void main(String[] args) { String s = "aba-_1212-_34"; Pattern p = Pattern.compile("[^_,^-](\\w|_|-)*[^_,^-]"); Matcher m = p.matcher(s); System.out.println(m.matches()); } 不好意思,大意了,可以改为: String reg = "^([^_\\-](\\w|\\-)*[^_\\-])|[^_\\-]$"; String str1 = "aba-_1212-_34"; String str2 = "a"; String str3 = "_"; String str4 = "aa"; String str5 = "a_"; String str6 = "-"; System.out.println(str1.matches(reg)); System.out.println(str2.matches(reg)); System.out.println(str3.matches(reg)); System.out.println(str4.matches(reg)); System.out.println(str5.matches(reg)); System.out.println(str6.matches(reg)); soga,不能用非运算。String reg = "^([^_\\-](\\w|\\-)*[^_\\-])|[A-Za-z0-9]$"; 惭愧惭愧,还是非运算惹得祸:String reg = "^([A-Za-z0-9](\\w|\\-)*)?[A-Za-z0-9]$"; 关于swing中的一个问题解决不了~~ 简单问题 word是字节流,txt是字符流,是不是这样的? 字符串转换为时间 文件名大小写问题 IReport求助 dispose()与System.exit(0)两方法有何区别? 如何从队列中取值??? 高分求4皇后问题详细解法 征求方法:java有哪些方法与C程序进行通讯? 跪求啊找到Int;需要int[]; List 如何转换成MAP
<script language="javascript">
var reg = /^[^_\-](\w|\-)*[^_\-]$/;
var str1 = "aba-_1212-_34";
var str2 = "aba34";
var str3 = "aba 34";
var str4 = "-aba-_1212-_34";
var str5 = "aba-_1212-_34_";
alert(str1 + ": " + reg.test(str1) + "\n"
+ str2 + ": " + reg.test(str2) + "\n"
+ str3 + ": " + reg.test(str3) + "\n"
+ str4 + ": " + reg.test(str4) + "\n"
+ str5 + ": " + reg.test(str5) + "\n"
);
</script>
String str1 = "aba-_1212-_34";
str1.matches(reg);
String s = "aba-_1212-_34";
Pattern p = Pattern.compile("[^_,^-](\\w|_|-)*[^_,^-]");
Matcher m = p.matcher(s);
System.out.println(m.matches());
}
不好意思,大意了,可以改为:
String reg = "^([^_\\-](\\w|\\-)*[^_\\-])|[^_\\-]$";
String str1 = "aba-_1212-_34";
String str2 = "a";
String str3 = "_";
String str4 = "aa";
String str5 = "a_";
String str6 = "-";
System.out.println(str1.matches(reg));
System.out.println(str2.matches(reg));
System.out.println(str3.matches(reg));
System.out.println(str4.matches(reg));
System.out.println(str5.matches(reg));
System.out.println(str6.matches(reg));