黑马程序员--正则表达式(重点)
来源:互联网 发布:美国的华莱士 知乎 编辑:程序博客网 时间:2024/06/07 03:52
----------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------
正则表达式:就是符合一定规则的表达式。
在包util.regex中。
下面有两个类:一个是模式:Pattern ,一个是匹配器:Matcher
作用:专门用来操作字符串的。
特点:用一些符号来表示规则。定义好这些规则就可以很容易的操作字符串。
注意:其实在String类中的方法,很多都是封装正则表达式。
对字符串简单的操作还是用String类中的方法好。
但是对字符串复杂的操作就要用到正则了。
具体功能:
1.匹配
2.切割
3.替换
4.获取
将字符串中符合规则的元素取出。
1,打正则表达式封装成对象。
2,让正则表达式和要操作的字符串相关联。
3,获取匹配器。
4,通过匹配器对字符串进行操作。
import java.util.regex.*;class RegexDemo {public static void main(String[] args) {//System.out.println("Hello World!");method_1();method_2();method_3();method_4();}public static void method_1()//匹配{String s = "13794567745";String regex = "1[358]\\d+{11}";//意思:第一位是1,第二位是3或5或8,第三位是数字,有1位或多位数字,刚好11位。sop(s.matches(regex));s = "12345356";regex = "[1-9]\\d{6,11}";//意思:第一位是1-9之间,第二位是数字。最少有6位,最多有11位。sop(s.matches(regex));}public static void method_2()//切割{String s = "abc asd asf efas";String regex = " +";//意思: 一个或多个空格。String[] str = s.split(regex);s = "c:\\java\\0917";regex = "\\\\";//意思:用\\来切。str = s.split(regex);s = "abc.bde.ger";regex = "\\.";//意思:用.来切。str = s.split(regex);s = "asssfffferrggg";regex = "(.)\\1+";//意思:(.)第一位是任何字符。()表示一个组。第二位是第一组中的值。也就是.,有一位.或多位。str = s.split(regex);for (String ss : str ){sop(ss);}}public static void method_3()//替换{String s = "var13789003jsdf891239283";String regex = "\\d{5,}";s = s.replaceAll(regex,"*");//意思:5位或以上数字替换成*。s = "dddffffeerrrggll";regex = "(.)\\1+";s = s.replaceAll(regex,"$1");//意思:1位以上的任何重复字符,替换成1组中的值。去除重复元素。sop(s);}public static void method_4()//获取{String s = "ming tian jiu yao fang jia le ,da jia . ";String regex = "\\b[a-zA-Z]{4}\\b";//第一步:把正则表达式封装成对象。Pattern p = Pattern.compile(regex);//第二步:获取指定字符串的匹配器。Matcher m = p.matcher(s);//第三步:操作字符串while (m.find()){sop(m.group());}}public static void sop(Object obj){System.out.println(obj);}}
正则表达式的练习:
第一个:
对邮箱地址进行校验。
第二个:
我我...我我...我要..要要...要要...学学学....学学...编编编...编程..程.程程...程...程
转成:我要学编程。
第三个:
网络爬虫。
从一个网页页面中爬到邮箱地址。
import java.util.regex.*;import java.net.*;import java.io.*;class RegexDemo2 {public static void main(String[] args) {method_1();method_2();method_3();}public static void method_1()//对邮箱地址进行校验{String s = "wangyang@126.com.cn";String regex = "[a-zA-Z]\\w+{6,12}@\\w+{1,8}(\\.[a-zA_Z]+)+";//意思:第一位是a-z或A-Z第二位以后都是字符。至少要六位。最多12位。下一位是@//下一位以后都是字符。到少一位,最多八位。下一组是.加上很多a-z。有很多组。sop(s.matches(regex));}public static void method_2(){String s = "我我...我我...我要..要要...要要......学学...编编编...编程..程.程程...程...程";String regex = "\\.+";//分两步走。第一步:用空替换掉...s = s.replaceAll(regex,"");sop(s);regex = "(.)\\1+";//第二步:替换掉重复字符。s = s.replaceAll(regex,"$1");sop(s);}public static void method_3()throws Exception{//爬这一断代码"space-uid-数字.html"URL url = new URL("http://bbs.itheima.com/forum-165-1.html");}public static void sop(Object obj){System.out.println(obj);}}
----------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------
0 0
- 黑马程序员--正则表达式(重点)
- 黑马程序员-正则表达式
- 黑马程序员 正则表达式
- 黑马程序员:正则表达式
- 黑马程序员---正则表达式
- 黑马程序员:正则表达式
- 黑马程序员--正则表达式
- 黑马程序员--正则表达式
- 黑马程序员--正则表达式
- 黑马程序员--正则表达式
- 黑马程序员 正则表达式
- 黑马程序员-正则表达式
- 黑马程序员:正则表达式
- 黑马程序员-正则表达式
- 黑马程序员 正则表达式
- 黑马程序员---正则表达式
- 黑马程序员---正则表达式
- 黑马程序员-正则表达式
- Jquery DataTables 之完全总结
- jmeter基础概念
- 搜索引擎----以lucene为例进行简单的搜索过程描述
- XPath语法详解
- UVa457 - Linear Cellular Automata-字符串-难度1
- 黑马程序员--正则表达式(重点)
- Appendix B: Writing Clear Code
- 关于 Eclipse 在线更新ADT
- 集成运放
- 用 const 限定类的成员函数
- MOTO G代码开源
- Android布局之LinearLayout
- linux c socket client与server实例代码
- 基于visual Studio2013解决面试题之1207堆排序