先附上正则常用的字符类。方便给以下出现的正则参考。
[abc] 可以是a,b,c任意一个字符 [^abc] 除了a,b,c的任意字符 [a-zA-Z] 任意大小写英文字母 [a-z&&[AbCd]] 为b或者d的字符,A,C不在a-z范围内。 s 空白符(空格,换行,tab,换页) S s的反义,非空白 d 数字,等价于[0-9] D 非数字 w 字符,等价于[a-zA-Z0-9],我试了下,并非完全等价,输入非英语的字母也能匹配w W 非字符 . 点代表任意字符,真正意义上的任意字符,包括汉字等都能匹配。</span></span>
String 类自带简单的正则功能(matches()方法),用起来比较方便。
如 "-1234".matches("-?\d+")
这个能匹配成功返回true,matches方法的参数是String类型,也即传入需要匹配的正则。
(?表示可有可无。+ 表示前面的元素可以有多个)
String另外还有几个比较有用的正则功能。
Sting提供的split()方法。按照正则匹配,将字符截断,返回数组。
String text = "my name is yi shen"; String[] arr= text.split(" "); //这里用空格匹配并截断。此时得到的数组的值为 {"my","name","is","yi","shen"} String[] arr1 = text.split("e\w+"); //得到的是{"my nam"," is yi shen"}