java正则表达式 ^expr 和 [^expr] 和 ^[^expr]的比较

public class Main {
	private static String[] array = {"Jav", "Java", "Hello"};	
	
	public static void main(String[] args) {
		String[] regexs = {
				"^Java", // 以 Java开头的字符串
				"[^Java]",// 除了 J a v a 之外 的任何字符.
				"^[^Java]"// 除了 J a v a 之外 的任何字符 并开头的字符.
			};
		
		int i = 0;
		for(String s: array) {
			System.out.println("\n============");
			System.out.print("input = " + s + ", ");
			for (int j = 0; j < regexs.length; j++) {
				System.out.println("\nregex = " + regexs[j]);
				Pattern pattern = Pattern.compile(regexs[j]);
				Matcher m = pattern.matcher(s);
				while(m.find()) {
					System.out.println(m.group());
				}
			}
			
		}
	}
}
// 运行结果  , 得出结果, 在[] 里面的 ^ 表示匹配字符,而在 [] 外面的 ^ 表示对一行的起始边界进行匹配。
============
input = Jav, 
regex = ^Java

regex = [^Java]

regex = ^[^Java]

============
input = Java, 
regex = ^Java
Java

regex = [^Java]

regex = ^[^Java]

============
input = Hello, 
regex = ^Java

regex = [^Java]
H
e
l
l
o

regex = ^[^Java]
H


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值