在开发中,正则表达式有很大的用途的,现在说说它最基本的4个常用的功能:
查询、提取、分割、替换,用代码说话,看看就明白了
- package com.sucre.blog;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- /**
- * 正则表达式的常用功能测试
- * @author sucre
- *
- */
- public class RegularExpressions {
- /**
- * 查询str中是否有regEx,有rs为true,否则为flase
- * @return
- */
- private static void searchCharacter(){
- String str="sucre blog 51CTO.COM";
- String regEx="c|l"; //表示a或f
- Pattern p=Pattern.compile(regEx);
- //这种写法是忽略大小写的
- //Pattern p=Pattern.compile(regEx,Pattern.CASE_INSENSITIVE);
- Matcher m=p.matcher(str);
- boolean rs=m.find();
- System.out.println(rs);
- }
- /**
- * 提取字符串
- * 结果为name.txt,提取的字符串储存在m.group(i)中,其中i最大值为m.groupCount();
- */
- private static void extraction(){
- String regEx = "(.+)$";
- String str="c:\\name.txt";
- Pattern p=Pattern.compile(regEx);
- Matcher m=p.matcher(str);
- boolean rs=m.find();
- for(int i=1;i<=m.groupCount();i++){
- System.out.println(m.group(i));
- }
- }
- /**
- * 分割字符串
- *
- */
- private static void segmentation(){
- String regEx="::";
- Pattern p=Pattern.compile(regEx);
- String[] r=p.split("sucre::blog::51cto");
- for (int i = 0; i < r.length; i++) {
- System.out.println(r[i]);
- }
- }
- /**
- * 替换字符
- *
- */
- private static void replace(){
- String regEx="a+"; //表示一个或多个a
- Pattern p=Pattern.compile(regEx);
- Matcher m=p.matcher("aaabbced a ccdeaa");
- String s=m.replaceAll("A");
- System.out.println(s);
- }
- public static void main(String[] args) {
- searchCharacter();
- extraction();
- segmentation();
- replace();
- }
- }
运行结果为
- true
- c:\name.txt
- sucre
- blog
- 51cto
- Abbced A ccdeA
许多复杂的功能都是在这些简单功能的基础上构建起来的,基础很重要。