`
hgfghw6
  • 浏览: 44712 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

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、 
分享到:
评论

相关推荐

    Java 正则表达式详解

    Java 正则表达式是Java语言中用于处理文本和匹配模式的强大工具。它们基于正规语法,可以用来查找、替换或分割字符串,具有高度灵活性和精确性。正则表达式在许多编程语言中都有应用,包括Perl、PHP、Python、...

    正则表达式

    [JAVA] javascript 正则表达式 秋雨叶 发表于 2004-12-9 14:54:13 正则表达式是一个描述字符模式的对象。 JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的...

    day015_常用类-异常-正则表达式.docx

    本课程旨在深入讲解Java编程语言中几个重要的方面:常用类、异常处理以及正则表达式的使用。这些知识点是Java开发者必须掌握的基础技能之一,它们不仅能够帮助开发者编写更加健壮和高效的代码,还能提升解决实际问题...

    传智播客_java基础知识汇总

    7. **day17JDK5.0新特性与正则表达式.doc**:JDK 5.0引入了许多新特性,如枚举、泛型、匿名内部类、变量类型推断(var关键字的前身)等。正则表达式则是字符串处理的强大工具,用于模式匹配和搜索替换。 这些文档...

    就业班JavaSE--day06 每日作业卷1

    8. **正则表达式**:正则表达式是用于匹配字符串的模式,具有强大的文本处理能力。它可以用来验证字符串是否符合特定格式,或进行字符串的查找、替换等操作。Java中,`String`类提供了`matches()`、`replaceAll()`等...

    全部讲义.zip

    10. **正则表达式**:这部分介绍了正则表达式的语法和在Java中的使用,包括字符串的匹配、替换和分割等操作。 11. **算法**:可能涵盖了排序算法(如冒泡、选择、插入、快速、归并排序等)、查找算法(如二分查找、...

    Java_day25上课资料.zip

    - Regex(正则表达式):进行字符串的匹配和替换。 - 枚举(enum):理解枚举类型及其在Java中的应用。 9. **JDBC数据库连接**: - 数据库连接:使用DriverManager、Connection、Statement和ResultSet等类操作...

    java初学者完整代码+注释18

    9. **Java标准库的使用**:Java有许多内置的API,如Date和Calendar类进行日期操作,Math类进行数学计算,以及Regex(正则表达式)进行文本处理。Day18可能深入讲解这些库的使用。 10. **单元测试**:介绍JUnit框架...

    JAVA程序员笔试题

    - **字符串替换**:可以使用`String.replace()`方法实现简单的替换,对于复杂规则,可使用正则表达式。 ```java public static String replaceAll(String s, String target, String replacement) { return s....

    整理后java开发全套达内学习笔记(含练习)

    abstract (关键字) 抽象 ['æbstrækt] ...正则表达式 输出格式控制: 转义符: \ddd 1到3位8进制数指定Unicode字符输出(ddd) \uxxxx 1到4位16进制数指定Unicode字符输出(xxxx) \\ \ \' ' \" ...

    hive函数大全

    - 正则表达式替换函数 (regexp_replace) - 正则表达式解析函数 (regexp_extract) - URL解析函数 (parse_url) - json解析函数 (get_json_object) - 空格字符串函数 (space) - 重复字符串函数 (repeat) - 首字符ascii...

    如何给字符型字段以自定义初始值

    可以使用正则表达式来验证字段中的数据是否符合预期的格式。例如,`match(gettext(), "^[+]")` 可用于检查字段中的文本是否以特定字符开头。 #### 5. 使用 SQL 查询 当需要执行复杂的查询时,可以直接使用 SQL ...

    Oracle_Database_11g完全参考手册.part3/3

    第8章 正则表达式搜索 8.1 搜索串 8.2 REGExP_SUBSTR 8.3 REGEXP_INSTR 8.4 REGEXP-LIKE 8.5 REPLACE和REGEXPRRPIACE 第9章 数值处理 9.1 三类数值函数 9.2 表示法 9.3 单值函数 9.3.1 加减乘除 9.3.2 NULL 9.3.3 ...

    Oracle_Database_11g完全参考手册.part2/3

    第8章 正则表达式搜索 8.1 搜索串 8.2 REGExP_SUBSTR 8.3 REGEXP_INSTR 8.4 REGEXP-LIKE 8.5 REPLACE和REGEXPRRPIACE 第9章 数值处理 9.1 三类数值函数 9.2 表示法 9.3 单值函数 9.3.1 加减乘除 9.3.2 NULL 9.3.3 ...

    Advent-of-Code:我遇到的代码挑战的存储库

    4. **字符串处理**:字符串查找、替换、分割、连接等操作,以及正则表达式的应用。 5. **文件I/O**:读取和写入文件,可能涉及到日志、输入输出数据的处理。 6. **日期和时间处理**:理解日期格式,计算日期差,...

    advent_of_code:一个用于adventofcode.com解决方案的地方

    对于字符串处理,Python的字符串方法如`split()`、`join()`、正则表达式等都能在解决问题时大显身手。对于逻辑和算法,Python的控制流语句(如`if`、`for`、`while`)以及高阶函数(如`map()`、`filter()`、`reduce...

    freemarker总结

    JAVA模版引擎Freemarker常用标签(一) 1. if指令 这是一个典型的分支控制指令,该指令的作用完全类似于Java语言中的if,if指令的语法格式如下: <#if condition>... <#elseif condition>... <#elseif condition>......

Global site tag (gtag.js) - Google Analytics