有关正则表达式的问题
在用户名匹配时,我想用户名必须以大写字母开头,这样写:if (!yonghuField.getText().toString().startsWith("[A-Z]"))
JOptionPane.showMessageDialog(this, "用户名必须以大写字母开头!");
为什么不行?谢谢 当然不行了
用String的matches方法! 那怎么改,谢谢 [color=Red]import javax.swing.JOptionPane;
public class A{
private String str;
public A(String s){
str = s;
}
public void p(){
if(!str.matches("[A-Z][\\S]*"))//判断是否以大写字母开头,后接非空白字符
JOptionPane.showMessageDialog(null,"您的串不是以大些字母开头的");
}
public static void main(String args[]){
A a = new A("B15");
a.p();
}
}[/color]
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
我想应该是这样的
[[it] 本帖最后由 freish 于 2008-5-10 09:16 编辑 [/it]] 如果要用startsWith也可以
从A到Z都判断一次
import javax.swing.JOptionPane;
public class A{
private String str;
private boolean b = false;
public A(String n){
str = n;
}
public void p(){
for(char ch='A';ch<='Z';ch++){
if(str.startsWith(String.valueOf(ch))){
b = true;
break;
}
}
if(!b)
JOptionPane.showMessageDialog(null,"您输入的不是以大些字母开头的串");
}
public static void main(String args[]){
A a = new A("asaf");
a.p();
}
}
[[it] 本帖最后由 freish 于 2008-5-10 09:15 编辑 [/it]]
页:
[1]
