5.5 正则表达式
正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的一个或多个字符串。
5.5.1 常用正则表达式
正则表达式(regular expression)作为一个模板,将某个字符模式与所搜索的字符串进行匹配。下面介绍在编程当中经常会使用到的正则表达式,如表5-2所示。
表5-2 常用正则表达式
5.5.2 正则表达式的实例
在String类中提供了matches()方法,用于检查字符串是否匹配给定的正则表达式。其语法格式如下:
public boolean matches(String regex)
参数介绍如下:
· regex:用来匹配字符串的正则表达式。
· boolean:返回值类型。
使用String类提供的matches()方法验证输入的邮箱是否匹配指定的正则表达式。
【例5.21】使用正则表达式,在字符串中查询字符或者字符串(源代码\ch05\5.21.txt)。
运行结果如图5-21所示。
图5-21 在字符串中查询字符或字符串
例5.21中利用正则表达式判断字符串“abcdefg”中是否含有“ABC*”。*表示通配符,即以ABC开头的任意长度的字符串。运行结果为false,说明字符串“abcdefg”中不含有“ABC*”,原因是Pattern.compile()方法默认区分字母的大小写。如果将ABC改为abc,则结果为true。Pattern.compile()方法也可以添加第二个参数Pattern.CASE_INSENSITIVE,使其不区分字母大小。
【例5.22】使用正则表达式验证E-mail格式是否正确(源代码\ch05\5.22.txt)。
运行结果如图5-22所示。
图5-22 验证E-mail格式是否正确
一般来说,正确的邮箱格式为:用户名@服务器域名。例5.22验证了用户输入的邮箱格式是否符合要求。需要验证的邮箱地址为“xyz@abc.net”,通过正则表达式“[a-zA-Z_]{1,}[0-9]{0,}@(([a-zA-z0-9]-*){1,}\\.){1,3}[a-zA-z\\-]{1,}”,验证邮箱格式正确。如果将邮箱地址中的@符号删去,则会提示错误。