正则表达式
正则表达式是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。 正则表达式的表达类:
字符类:
[abc] a、b 或 c(简单类) [ ^abc ] 任何字符,除了 a、b 或 c(表否定) [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(表范围) [0-9] 0到9的字符都包括 代码:
String regex = "[abc]" ;
System. out. println ( "a" . matches ( regex) ) ;
System. out. println ( "d" . matches ( regex) ) ;
String regex = "[^dbc]" ;
System. out. println ( "a" . matches ( regex) ) ;
System. out. println ( "d" . matches ( regex) ) ;
String regex = "[a-zA-Z1-9]" ;
System. out. println ( "0" . matches ( regex) ) ;
System. out. println ( "a" . matches ( regex) ) ;
System. out. println ( "A" . matches ( regex) ) ;
System. out. println ( "1" . matches ( regex) ) ;
预定义字符类
. 任何字符。 \d代表数字:[0-9] \D代表非数字 \s空白字符:[\t\n\x0B\f\r] \S非空字符 \w单词字符[a-zA-Z_0-9] \W非单词字符
String regex = "." ;
System. out. println ( "a" . matches ( regex) ) ;
System. out. println ( "ab" . matches ( regex) ) ;
String regex = "\\d" ;
System. out. println ( "0" . matches ( regex) ) ;
数量词
X? X,一次或一次也没有 X* X,零次或多次 X+ X,一次或多次 X{n} X,恰好 n 次 X{n,} X,至少 n 次 X{n,m} X,至少 n 次,但是不超过 m 次
String regex = "[abc]?" ;
System. out. println ( "a" . matches ( regex) ) ;
System. out. println ( "" . matches ( regex) ) ;
String regex = "[abc]*" ;
System. out. println ( "" . matches ( regex) ) ;
System. out. println ( "abc" . matches ( regex) ) ;
System. out. println ( "a" . matches ( regex) ) ;
正则表达式的替换功能
String类的功能:public String replaceAll(String regex,String replacement)
String s = "woai22bread" ;
String regex = "\\d" ;
String s2 = s. replaceAll ( regex, "" ) ;
System. out. println ( s2) ;
正则表达式的分组功能
捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B( C ))) 中,存在四个这样的组:
String regex = "(.)\\1(.)\\2" ;
System. out. println ( "快快乐乐" . matches ( regex) ) ;
String regex = "(..)\\1" ;
System. out. println ( "快乐快乐" . matches ( regex) ) ;
String s = "sdqqfgkkkhjppppkl" ;
String regex = "(.)\\1+" ;
String[ ] arr = s. split ( regex) ;
for ( int i= 0 ; i< arr. length; i++ )
{
System. out. println ( arr[ i] ) ;
}
Pattern和Matcher的运用
Pattern p = Pattern. compile ( "a*b" ) ;
Matcher m = p. matcher ( "aaaaab" ) ;
boolean b = m. matches ( ) ;
String s = "我的手机号码:18319857093,曾经用过13421343586,还用过18812345678" ;
String regex = "1[3578]\\d{9}" ;
Pattern p = Pattern. compile ( regex) ;
Matcher m = p. matcher ( s) ;
while ( m. find ( ) ) {
System. out. println ( m. group ( ) ) ;
}
Date
Date类的概述
构造方法
public Date() public Date(long date) 成员方法
public long getTime() public void setTime(long time)
Date d1 = new Date ( ) ;
System. out. println ( d1) ;
Date d2 = new Date ( 0 ) ;
System. out. println ( d2) ;
Date d3 = new Date ( ) ;
System. out. println ( d3. getTime ( ) ) ;
SimpleDateFormat类实现日期和字符串的相互转换
DateFormat类的概述
DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。是抽象类,所以使用其子类SimpleDateFormat SimpleDateFormat构造方法
public SimpleDateFormat() public SimpleDateFormat(String pattern) 成员方法
public final String format(Date date) public Date parse(String source)
DateFormat d = DateFormat. getDateInstance ( ) ;
Date d = new Date ( ) ;
SimpleDateFormat sdf = new SimpleDateFormat ( "YYYY年MM月dd日 HH:mm:ss" ) ;
System. out. println ( sdf. format ( d) ) ;
String str = "2000年08月08日 08:08:08" ;
SimpleDateFormat sdf = new SimpleDateFormat ( "yyyy年MM月dd日 HH:mm:ss" ) ;
Date d = sdf. parse ( str) ;
System. out. println ( d) ;