Java中正则表达式的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中正则表达式的问题相关的知识,希望对你有一定的参考价值。
创建一个用户名和密码,使用正则表达式来检验,其中密码必须由字母和数字组成,必须含有至少一个字母和数字.在Java中应该怎么写这段正则表达式?
参考技术A public static void main(String args[])String name = args[0];
String password = args[1];
Pattern p1 = Pattern.compile("[a-zA-Z]+[0-9]+");
Matcher m = p1.matcher(password);
boolean b = m.matches();
if(b)
System.out.println("你输入的密码是由字母和数字组成的,且至少是有一个字母和数字。");
else
System.out.println("密码输入有误。。。。。");
参考技术B [密码必须由字母和数字组成,必须含有至少一个字母和数字]
密码必须通过2个正则表达式检验:
String regEx="[0-9]+"
String regEx="[a-zA-Z]+"
可以写成一个,不过可能不够简单直观:
[0-9]+[a-zA-Z]+|[a-zA-Z]+[0-9]+ 参考技术C String regEx="([0-9a-zA-Z]+)";//正则表达示
Pattern p=Pattern.compile(regEx);
Matcher m=p.matcher(content);//content就是你的用户名或密码
boolean n=m.find();
if(n)
out.print("规则正确");
else
out.print("规则不正确");
注意:要导入这个包import="java.util.regex.*"; 参考技术D import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PwdTest
public static void main(String[] args)
String[] test = "a", "aaaaa", "中", "1", "11111", "a1", "1a",
"aaaaaaaaaaaaa1", "11111111111111a", "1a7sd9f7s9d", "11111a1",
"11111aaa" ;
String regex = "([0-9a-zA-Z]0,[0-9]+[0-9a-zA-Z]0,[a-zA-Z]+[0-9a-zA-Z]0,)|([0-9a-zA-Z]0,[a-zA-Z]+[0-9a-zA-Z]0[0-9]+[0-9a-zA-Z]0,)";
Pattern p = Pattern.compile(regex);
for (String t : test)
Matcher m = p.matcher(t);
System.out.println(t + "\t\t" + m.matches());
测试结果:
aaaaa false
中 false
1 false
11111 false
a1 true
1a true
aaaaaaaaaaaaa1 true
11111111111111a true
1a7sd9f7s9d true
11111a1 true
11111aaa true 第5个回答 2008-07-15 "([0-9a-zA-Z]0,[0-9]+[0-9a-zA-Z]0,[a-zA-Z]+[0-9a-zA-Z]0,)|([0-9a-zA-Z]0,[a-zA-Z]+[0-9a-zA-Z]0[0-9]+[0-9a-zA-Z]0,)";
就他就可以了。。
以上是关于Java中正则表达式的问题的主要内容,如果未能解决你的问题,请参考以下文章