黑马程序员:正则表达式学习笔记
2012-02-20 03:05
375 查看
---------------------- android培训、java培训、期待与您交流! ----------------------
正则表达式:符合一定规则的表达式。作用是用于专门操作字符串,可以简化对字符串的复杂操作。
特点:用一些特定的符号来表示一些代码操作,这样就可以简化书写。
好处:可以简化对字符串的复杂操作。
弊端:符号定义越多,正则越长,阅读性越差。
总结:到底用四种功能中的哪个呢?
思路:
1,如果只想知道该字符是对是错,使用匹配。
2,想要将已有的字符串变成另一个字符串,使用替换功能。
3,想要按照自定的方式将字符串变成多个字符串,用切割,获取规则以外的字符。
4,想要拿到符合要求的字符串字串,用获取,获取符合规则的字串。
正则表达式的操作功能:
1.匹配:String Matches()
2.切割:String split()
3. 替换:String replaceAll(String regex,String str)
4.获取:Pattern.compile(Regex) , Matcher()
*********************三个练习*******************
---------------------- android培训、java培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net/heima
正则表达式:符合一定规则的表达式。作用是用于专门操作字符串,可以简化对字符串的复杂操作。
特点:用一些特定的符号来表示一些代码操作,这样就可以简化书写。
好处:可以简化对字符串的复杂操作。
弊端:符号定义越多,正则越长,阅读性越差。
总结:到底用四种功能中的哪个呢?
思路:
1,如果只想知道该字符是对是错,使用匹配。
2,想要将已有的字符串变成另一个字符串,使用替换功能。
3,想要按照自定的方式将字符串变成多个字符串,用切割,获取规则以外的字符。
4,想要拿到符合要求的字符串字串,用获取,获取符合规则的字串。
正则表达式的操作功能:
1.匹配:String Matches()
public static void checkTel() { String Tel = "13592235644"; String reg = "1[358]\\d{3-9}"; System.out.println(Tel.matches(reg)); }
2.切割:String split()
public static void splitDemo(String str,String teg) { String[] arr = str.split(teg); for(String s : arr) { System.out.println(s); } } class RegexDomo { public static void main(String[] args) { splitDemo("zhangsan,lisi,wangwu",","); splitDemo("zhangsan lisi wangwu"," +"); //+表示出现一次或多次。 splitDemo("c:\\abc\\a.txt","\\\\"); //转义字符 splitDemo("erkktyqqquizzzzzo","(.)\\1+"); //按照叠词切割,就是后一个和前一个是一样的。 /* 为了让规则的结果可以重用,可以将规则用()封装成组,组都有编号。 从1开始,想要使用已有的组可以通过\n(n就是租的编号)的形式来获取。 ((())()) 有几组就数有几个左括号,第几组也是数左括号,第几个就是第几组。 */ String str = "wer13899800000ty123456754uioo"; //将字符串中的数字替换成#。 replaceAllDemo(str,"\\d{5,}","#"); String str1 = "erkktyqqquillllojl"; //将字符串中的叠词替换成单个字母。zzzz->z replaceAllDemo(str1,"(.)\\1+","$1"); //$1表示获取第一个组的内容 } }
3. 替换:String replaceAll(String regex,String str)
public static void replaceAllDemo(String str,String reg,String newStr) { str = str.replaceAll(reg,newStr); System.out.println(str); }
4.获取:Pattern.compile(Regex) , Matcher()
import java.util.regex.*; //需要用到正则表达式包 class RegexDemo2 { public static void getDemo() { String str = "ming tian jiu yao fang jia le ,da jia"; String reg = "\\b[a-z]{3}\\b"; // '\b'表示单词边界。 //取出3个字符组成的单词。 //将规则封装成对象 Pattern p = Pattern.compile(reg); //让正则对象和要作用的字符串相关联。 Matcher m = p.matcher(str); //m.find();//讲规则作用到字符串上,并进行符合规则的字串查找。 //System.out.println(m.group());//用于获取匹配后的结果。 while(m.find) { System.out.println(m.group()); } } }
*********************三个练习*******************
import java.util.regex.*; import java.util.*; class RegexDemo { public static void main(String[] args) { test_1(); regexTest_2(); checkMail(); } //需求:将下列字符串变成:我要学编程。 public static void test_1() { String str = "我我...我我...我要..要要....学学.....学学..编编编...程...程程..程"; /* 思路:需要将已有字符串变成另一个字符串,使用替换功能。 步骤:1,将所有.去掉。 2,将多个重复的字变成一个字。 */ str = str.replaceAll("\\.+",""); //System.out.println(str.replaceAll("(我)\\1+(要)\\2+(学)\\3+(编)\\4+(程)\\5+","$1$2$3$4$5")); System.out.println(str); String str1 = str.replaceAll("(.)\\1+","$1"); System.out.println(str1); } //需求2:将ip地址进行地址段顺序排序。 public static void regexTest_2() { String str = "192.68.1.254 102.49.23.013 10.10.10.10 2.2.2.2 8.109.90.30"; str = str.replaceAll("(\\d+)","00$1"); System.out.println(str); str = str.replaceAll("0*(\\d{3})","$1"); System.out.println(str); String[] arr = str.split(" +"); TreeSet<String> ts = new TreeSet<String>(); for(String s : arr) { ts.add(s); } for(String s : ts) { System.out.println(s.replaceAll("0*(\\d+)","$1")); } } //需求3:对邮件地址进行校验 public static void checkMail() { String mail = "1@1.cn.com"; boolean b = mail.matches("\\w+@[a-zA-Z0-9]+(\\.[a-zA-Z]+){1,3}"); System.out.println(b); } }
---------------------- android培训、java培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net/heima
相关文章推荐
- 黑马程序员 java学习笔记 Day8:正则表达式
- 黑马程序员--学习笔记--正则表达式
- 黑马程序员_学习笔记:17) 正则表达式
- 黑马程序员_正则表达式学习笔记(1)
- 黑马程序员_.NET学习14(正则表达式笔记)
- 黑马程序员 java学习笔记——正则表达式
- 黑马程序员_学习笔记第25天——正则表达式
- 黑马程序员--Java基础学习笔记【正则表达式、常用API】
- 黑马程序员_学习笔记第24天——正则表达式
- 黑马程序员 java学习笔记--正则表达式
- 黑马程序员 JAVA学习笔记 —— 正则表达式
- 黑马程序员_Java正则表达式学习笔记
- 黑马程序员--正则表达式学习笔记
- 黑马程序员——java学习笔记--正则表达式
- 黑马程序员------java学习笔记之正则表达式
- 黑马程序员java学习笔记——正则表达式、反射
- 黑马程序员_学习笔记4 IO流以及正则表达式解决一个传智播客的问题
- 黑马程序员——学习笔记13.Java正则表达式
- Perl 学习笔记-正则表达式应用篇
- shell编程学习笔记之正则表达式初识