Java语言程序设计 工业和信息化普通高等教育“十二五”规划教材 教学课件 作者 相洁 呼克佑 第4章 数组与字符串.ppt
文本预览下载声明
【例4-7】编程序,使用正则表达式判断给定的字符串是否是合法的格式。合法的格式是:大写字母+3个小写字母+3个数组。 public class Ex4_7_StringMatch { public static void main(String[] args) { String regex = \\p{Upper}\\p{Lower}\\p{Lower}\\p{Lower}\\d\\d\\d; String message1 = ABCd001; // 需要进行判断的字符串 String message2 = Abcd001; // 需要进行判断的字符串 boolean result1 = message1.matches(regex); boolean result2 = message2.matches(regex); if ( result1 )System.out.println(message1 + 是合法的数据 ); else System.out.println(message1 + 不是合法的数据 ); if ( result2 )System.out.println(message2 + 是合法的数据 ); else System.out.println(message2 + 不是合法的数据 ); } } 程序的执行结果如下: ABCd001不是合法的数据 Abcd001是合法的数据 4.3正则表达式 4.3.2 正则表达式中的[] 元字符既可以是放在[]中的任意单个字符(如 [a] 表示匹配单个小写字符a),也可以是字符序列(如 [a-d] 表示匹配a、b、c、d之间的任意一个字符,而\w表示任意英文字母和数字及下划线)。例如,regex=”[159]ABC”,那么”1ABC”、”5ABC”、”9ABC”都是与正则表达式regex匹配的字符串。方括号元字符的含义如下: [abcde]:匹配abcde之中的任意一个字符 [a-h]:匹配a到h之间的任意一个字符 [^fgh]:不与fgh之中的任意一个字符匹配 方括号允许嵌套,可以进行并、交、差运算。例如: [a-d[m-p]]:代表a~d,或m~p中的任何一个字符(并) [a-z[def]]:代表d、e或f中的任意一个字符(交) [a-f[^bc]]:代表a、d、e、f(差) 4.3正则表达式 4.3.3 正则表达式中的限定符 在使用正则表达式时,如果需要某一类型的元字符多次输出,逐个输入就相当麻烦,这时可以使用正则表达式的限定元字符来重复次数。例如regex=”hello[246]?”,那么”hello”、”hello2”、 ”hello4”、 ”hello6”都是与regex匹配的字符串。表4-4列举了一些常见的限定符。 表4-4 正则表达式中的限定符 带限定符号的模式 含义 带限定符号的模式 含义 X? X出现0次或1次 X{n,} X至少出现n次 X* X出现0次或多次 X{n,m} X出现n次至m次 X+ X出现1次或多次 XY X后跟Y X{n} X出现n次 X|Y X或Y 例如:regex=”@\\w{4}”,那么”@1234”、”@你好中国”等都是与regex匹配的字符串。 4.3正则表达式 【例4-8】编程实现通过正则表达式判断用户输入是否是合法的手机号码。 源程序如下: import java.io.*; public class Ex4_8_PhoneValidation { public static void main(String[] args) throws IOException { boolean contiGo = true; String str; BufferedReader buf = new BufferedReader( new InputStreamReader(System.in)); / 定义表示手机号码的正则表达式 String regex = ^(13\\d
显示全部