- 浏览: 43524 次
- 性别:
- 来自: 广州
最新评论
Java高级(正则表达式)【Day8】
- 博客分类:
- 技术杂绘
目标
回顾 Java 面向对象编程思想
回顾集合排序
了解 JDK 新特性
掌握 String 字符串处理中的超级武器--正则表达式
掌握常用的日期处理
1、回顾 Java 面向对象编程思想
面向对象编程,就是在编程的时候把程序看成现实中的
事物,通过类把这类事物公共的属性、功能描述出来。
创建完成单独的事物个体后,通过分析实体与实体之间
的关系,来描述多个事物配合在一起完成一个任务。
类;
对象;
消息传递;
class 房子{
形状 立方体;
外观 外墙;
门窗;
承重;
住宅(){}
商业办公室(){}
商场(){}
仓库(){}
}
2、回顾集合排序
(1)集合中存储多个对象,能够对所存储的对象进行各种排序
(2)让对象自己知道如何排序
(3)让第三个人来进行排序
3、了解 JDK 新特性
(1)自动装箱、拆箱
原始数据类型可以自动转换为包装类型。
int i =10; i.===> 包装类包装成对象
Integer it = new Integer(i); it.方法()
(2)泛型
模仿数组的特点,让集合中存放数据前,明确存放的
数据类型,编译器能够自动的识别,存入、取出
类型名称 变量名
List list = new ArrayList();
Map mp = new HashMap();
(3)新的 for 循环
与泛型配套使用,还有迭代器也是
List list = new ArrayList();
//for(Object obj :list){}
for(Student stu:list){
stu.getName();
}
(4)变长参数
public Country(String name, int goldNumber, int silverNumber){}
public Country(String name, int goldNumber, int silverNumber...){}
(5)静态方法导入
import static 包名.类名.属性名;
4、掌握 String 字符串处理中的超级武器--正则表达式
String 代表字符串的类,能够对字符串进行搜索、截取
、大小写转换等操作。
String s = "hello";
s.split(正则表达式);
s.charAt(index);//找到指定索引所在位置的字符
s.indexOf("")//找到指定字符串的位置索引
s.subString(beginIndex,endIndex) //指定长度截取字符串
boolean matches(String regex)
告知此字符串是否匹配给定的正则表达式。
输出一个字符串中所有的大写字母、小写字母、数字的个数
"helloJavaILikeIt37729aadfa2323sdf";
正则表达式规则--使用符号代表一定意义的字符串:
预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
符号规则
[] 代表一个字符,但是里面可以指定该字符可能出现的值
[a,4,d,f]
查找名称拼音中以 liu 开头的人 "[l,L][i][u]*"
[0-9] 从 0 到9
{} 代表一个范围,从该范围中找一个满足条件的字符
{1} 代表只有一个
{1,} 代表至少有一个
{1,3} 代表有 1-3 个
* 代表多个字符,重复 0 到 多次
+ 代表多个字符,重复 1 到多次
? 代表字符,重复 0 或 1 次
^ 如果在"[^a-z]" 一个字符,肯定不是小写,相反范围
如果在"^h.*" 代表以 h 开头的字符串,代表一个字符串的开头
$ 如果在"^h*l$" 代表以 h 开头,以 l 结尾的字符串
&&
"[0-9]" 从 0 到9 中找一个数字
" \\d{11}" 11 个数字组成的字符
用 Java 操作正则表达式使用到 的类
如:病人去医院检查身体(病人、医生、机器)
java.lang.String 病人
java.util.regex.Pattern 机器
java.util.regex.Matcher 医生
5、掌握常用的日期处理
1。^\d+$ //匹配非负整数(正整数 + 0)
2。^[0-9]*[1-9][0-9]*$ //匹配正整数
3。^((-\d+)|(0+))$ //匹配非正整数(负整数 + 0)
4。^-[0-9]*[1-9][0-9]*$ //匹配负整数
5。^-?\d+$ //匹配整数
6。^\d+(\.\d+)?$ //匹配非负浮点数(正浮点数 + 0)
7。^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\. [0-9]+)|([0-9]*[1-9][0-9]*))$ //匹配正浮点数
8。^((-\d+(\.\d+)?)|(0+(\.0+)?))$ //匹配非正浮点数(负浮点数 + 0)
9。^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]* \.[0-9]+)|([0-9]*[1-9][0-9]*)))$ //匹配负浮点数
10。^(-?\d+)(\.\d+)?$ //匹配浮点数
11。^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
12。^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
13。^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
14。^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
15。^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
16。^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ //匹配email地址
17。^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$ //匹配url
18。匹配中文字符的正则表达式: [\u4e00-\u9fa5]
19。匹配双字节字符(包括汉字在内):[^\x00-\xff]
20。应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}
21。匹配空行的正则表达式:\n[\s| ]*\r
22。匹配HTML标记的正则表达式:/.*|/
23。匹配首尾空格的正则表达式:(^\s*)|(\s*$)
* 正则表达式用例
* 1、^\S+[a-z A-Z]$ 不能为空 不能有空格 只能是英文字母
* 2、\S{6,} 不能为空 六位以上
* 3、^\d+$ 不能有空格 不能非数字
* 4、(.*)(\.jpg|\.bmp)$ 只能是jpg和bmp格式
* 5、^\d{4}\-\d{1,2}-\d{1,2}$ 只能是2004-10-22格式
* 6、^0$ 至少选一项
* 7、^0{2,}$ 至少选两项
* 8、^[\s|\S]{20,}$ 不能为空 二十字以上
* 9、^\+?[a-z0-9](([-+.]|[_]+)?[a-z0-9]+)*@([a-z0-9]+(\ .|\-))+[a-z]{2,6}$邮件
* 10、\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*([,;]\s *\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)* 输入多个地址用逗号或空格分隔邮件
* 11、^(\([0-9]+\))?[0-9]{7,8}$电话号码7位或8位或前面有区号例如(022)87341628
* 12、^[a-z A-Z 0-9 _]+@[a-z A-Z 0-9 _]+(\.[a-z A-Z 0-9 _]+)+(\,[a-z A-Z 0-9 _]+@[a-z A-Z 0-9 _]+(\.[a-z A-Z 0-9 _]+)+)*$
* 只能是字母、数字、下划线;必须有@和.同时格式要规范 邮件
* 13 ^\w+@\w+(\.\w+)+(\,\w+@\w+(\.\w+)+)*$上面表达式也可以写成这样子,更精练。
14 ^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$ [/size]
-------------------------------
要更加准确的匹配手机号码只匹配11位数字是不够的,
比如说就没有以144开始的号码段,
故先要整清楚现在已经开放了多少个号码段,国家号码段
分配如下:
移动:134、135、136、137、138、139、150、151、152、
157(TD)、158、159、187、188
联通:130、131、132、155、156、185、186
电信:133、153、180、189、(1349卫通)
详见:http:/ /blog.myspace.cn/e/405268924.htm 那么现在就可以正则匹配测试了,
Java代码
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ClassPathResource {
public static boolean isMobileNO(String mobiles){
Pattern p = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0,5- 9]))\\d{8}$");
Matcher m = p.matcher(mobiles);
System.out.println(m.matches()+"---");
return m.matches();
}
public static void main(String[] args) throws IOException {
System.out.println(ClassPathResource.isMobileNO("1 8616155153"));
}
}
5、
发表评论
-
字符串相似度的比较C#实现
2012-07-06 09:51 853由于最近的项目需要,有幸接触到了这方面的算法问题,字符串相 ... -
windows 正则表达式 工具 RegexBuddy
2012-07-06 09:45 790windows下的正则表达式工具,推荐的是:RegexBu ... -
ARGUMENT 76 Luxess 对改善皮肤是否有显著效果
2012-07-06 09:30 656TOPIC: ARGUMENT76 - The follo ... -
JS构建日期控件
2012-07-05 20:45 638JS构建的日期控件,做个抛砖引玉的作用,可能不适合很多的浏 ... -
SWT/JFace常用组件----布局管理器
2012-07-03 13:43 856在 Java 中, GUI 程序开发的目标之一是跨平台,而 ... -
Flex ColumnChart verticalAxis 中的title在变换皮肤时的异常
2012-07-02 10:30 616在ColumnChart 中添加了title的显示,但在更 ... -
Flex 4架构的组件开发
2012-07-02 10:30 452Flex 4架构的组件开发 作者:Michael Labr ... -
Flex文件上传
2012-07-02 10:30 407今天花了一点时间 ... -
Flex拓扑图的设计(二)机房设计
2012-07-02 10:29 577flex以及其优越的交互性,在flex3的时候已经得到大家 ... -
Flex 文件上传导入组件
2012-07-01 00:07 452上文讲到Flex利用Blazeds来上传文件,本文则封装了 ... -
用flex库资源的理由
2012-07-01 00:07 407Adobe Flash Builder 4 简体中文正式版 ... -
Flex 设计模式无法加载 as3commons-logging-1.1.1.swc。它可能与此 SDK 不兼容,或者无效。
2012-07-01 00:07 684Flex 设计模式无法加载 as3commons-lo ... -
Flex是咋回事之三 谁用谁知道
2012-07-01 00:06 634一项技术,从概念 ... -
Flex学习笔记(2)
2012-07-01 00:06 603学习中遇到转换错误 TypeError: Error ...
相关推荐
Java正则表达式Java正则表达式Java正则表达式Java正则表达式
许多语言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级“搜索-替换”功能。那么Java又怎样呢?本文写作时,一个包含了用正则表达式进行文本处理...
java,正则表达式,详解,java正则表达式,PDF
Java根据正则表达式生成字符串,包括了Xeger和automaton
java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解
java正则表达式java正则表达式java正则表达式java正则表达式java正则表达式java正则表达式
主要介绍了Java使用正则表达式提取XML节点内容的方法,结合具体实例形式分析了java针对xml格式字符串的正则匹配相关操作技巧,需要的朋友可以参考下
java通过正则表达式匹配获取MAC(支持windows和Linux)
正则表达式之道.doc 正则表达式中的特殊字符.doc Java正则表达式详解.doc 正则表达式.ppt JAVA正则表达式--Pattern和Matcher.doc 例子
java使用正则表达式进行校验验证,主要使用了Pattern和Matcher类,直接main方法运行就可以,亲测有效
JAVA正则表达式JAVA正则表达式JAVA正则表达式
java 使用正则表达式验证电话号码的格式 java 使用正则表达式验证电话号码的格式
java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解
Java 使用正则表达式对象实现正则的获取功能 Java 使用正则表达式对象实现正则的获取功能
Java正则表达式 Java 正则表达式 图片版 携带方便,查阅方便!~
Java常用正则表达式,一些在开发中常用的表达式。
Java正则表达式的使用,判断html、电话等是否符合规定、、、
java的正则表达式的详细说明,里面有详细的说明和例子,是要学习java正则表达式的好资料。
java 利用正则表达式从字符串中提取省、市、区、镇、乡等区域名称(包含少数民族地区),支持地址中无省,无市,无县情况。
最新手机号码、电话号码正则表达式