Java字符处理(Regex)

实例1:简单匹配字符串

package regex;

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class MatcherDemo {
	
	private static final String REGEX = "\\bdog\\b";  // "\b“表示边界
	private static final String INPUT = "dog dog dog doggie dogg";

	public static void main(String[] args) {
		//检查字符串里面有多少个dog
		Pattern p = Pattern.compile(REGEX);
		
		Matcher m = p.matcher(INPUT);

		
		int count = 0;
		while (m.find()) {
			count++;
			System.out.println("Match number " + count);
			System.out.println("start(): " + m.start());
			System.out.println("end(): " + m.end());
			m.start(count);
		}
	}
}

实例2:部分匹配和全部匹配

package regex;

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class MatchesLooking {

    private static final String REGEX = "foo";
    private static final String INPUT ="foo-foa-foo";
    private static Pattern p;
    private static Matcher m;

    public static void main(String[] args) {
   
        // Initialize
        p = Pattern.compile(REGEX);
        m = p.matcher(INPUT);

        System.out.println("Current REGEX is: "+ REGEX);
        System.out.println("Current INPUT is: "+ INPUT);

        System.out.println("lookingAt(): "
            +m .lookingAt());  //部分匹配
        System.out.println("matches(): "
            + m.matches());    //完全匹配
    }
}

实例3:替换指定字符串

package regex;

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class RegexDemo {
 
    private static String REGEX = "a*b"; //*表示限定前面的a可以有0或者多个。
    private static String INPUT = "aabfooaabfooabfoobcdd";
    private static String REPLACE = "-";
 
    public static void main(String[] args) {
        Pattern p = Pattern.compile(REGEX);
        Matcher m = p.matcher(INPUT); // get a matcher object
        StringBuffer sb = new StringBuffer();
        //全部替换
//        int count = 0;
        while(m.find()){
        	//用REPLACE中的字符串进行替换,再将替换的结果放到sb变量中
            m.appendReplacement(sb,REPLACE);
//            count++;
        }
        //将最后的尾巴字符串附加上
        m.appendTail(sb); 
        System.out.println(sb.toString());
    }
}

实例4:替换指定字符串:repalceAll

package regex;

import java.util.regex.Pattern;
import java.util.regex.Matcher;
 
public class ReplaceDemo2 {
 
    private static String REGEX = "a*b"; //*表示限定前面的a可以有0或者多个。
    private static String INPUT =
        "aabfooaabfooabfoob";
    private static String REPLACE = "-";
 
    public static void main(String[] args) {
        Pattern p = Pattern.compile(REGEX);
        // get a matcher object
        Matcher m = p.matcher(INPUT);
        INPUT = m.replaceAll(REPLACE);
        System.out.println(INPUT);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值