java中的正则表达式---Regex

正则表达式:用来作为模式或者规则进行匹配的
Pattern—一个用于正则表达式的类—正则表达式用于指定规则

[abc] 表示a/b/c中的任何一个
[^abc] 表示除了a/b/c
\d 表示数字
\D 表示非数字
\w 表示单词字符: [a-zA-Z_0-9]
\W 表示非单词字符
\s 表示空白字符
\S 表示非空白字符
^a 表示以a作为开头
a$ 表示以a作为结尾
. 表示任意字符
*表示出现零次或者多次
+表示至少出现一次
? 表示至多出现一次
{n} 表示恰好出现n次
{n,} 表示至少出现n次
{n,m} 表示至少出现n次,但是不超过m次

public class PetternDemo {
	public static void main(String[] args) {
		String s = "";
		/*判断这个字符串是否是“abc”*/
		System.out.println(s.matches("abc"));
		/*
		 * 匹配字符串abc/abd/abe,使其为其中的一个
		 */
		System.out.println(s.matches("ab[cde]"));  //中括号中的任何一个都可以
		/*
		 * 匹配字符串:ab*,后面的无所谓
		 */
		System.out.println(s.matches("ab[a-zA-Z]")); //也就是a到z,A到Z都可以
		/*
		 * 匹配任何数字
		 */
		System.out.println(s.matches("[0-9]"));
		System.out.println(s.matches("\\d")); \d表示数字[0-9],用的时候需要转义
		如果字符串是单个数字,写\\d即可,如果字符串有多个数字写\\d+
/*
		 * 匹配*de形式的字符串,但是*不能是a/b/c
		 */ 
		//^放在中括号里面,表示排除,不能是中括号的内容
		System.out.println(s.matches("[^abc]de")); 
		/*
		 * 字符串必须以a作为开头,后面可以跟着任何字母的字符串
		 */
		//^在中括号外面是以什么为开头
		System.out.println(s.matches("^a[a-zA-z]"));			
		/*
		 *必须以e作为结尾
		 */
		//$限定结尾
		System.out.println(s.matches("[a-zA-z]e$"));
		/*
		 * 匹配以a开头,以d结尾的有3个字符组成的字符串
		 */
		//.表示任意字符
		System.out.println(s.matches("^a.d$"));
		/*
		 * 匹配".txt"
		 */
		//由于.表示任意一个字符,所以此处需要转义。第一个\是java中的转义,第二个\是正则中的转义
		//匹配中括号的时候,用的是\\[
		System.out.println(s.matches("\\.txt"));
	}
}
public class PetternDemo2 {
	public static void main(String[] args) {
		String s = "";
		/*
		 * 匹配以a开头的由6个字符组成的字符串
		 */
		//a{n}---表示a恰好出现n次
		System.out.println(s.matches("^a.{5}")); //.需要出现5次
		/*
		 * 匹配以a开头的字符串
		 */
		//*-----表示后面的字符可有可无,出现不限次数
		System.out.println(s.matches("^a.*"));
		/*
		 * 匹配以a开头的至少由两个字符组成的字符串
		 */
		//+----表示之前的字符至少出现一次
		System.out.println(s.matches("^a.+"));
		/*
		 * 匹配以a开头的最多由2个字符组成的字符串
		 */
		//?---表示最多出现一次
		System.out.println(s.matches("^a.?"));
		/*
		 * 匹配至少由6个字符组成的字符串
		 */
		System.out.println(s.matches(".{6,}"));
		/*
		 * 匹配由8到12个字符组成的字符串
		 */
		System.out.println(s.matches(".{8,12}"));
	}
}
public class PetternDemo4 {
	public static void main(String[] args) {
		String s = "Tom 18 Sam 15 Amy 19";
		/*
		 * 交换位置,捕获组也会自动编号,引用用$
		 */
		System.out.println(s.replaceAll("(Tom.*)(Sam.*)(Amy.*)", "$2 $3 $1"));
	}
}
import java.util.Arrays;
public class PetternDemo5 {
	public static void main(String[] args) {
		String s = "fns3ueg55hu7e";
		String[] ss = s.split("h");
		//作为切割条件的字符会被舍弃
		//如果切割符的后面有字符,则会切割,如果切割符的后面没有字符了,那么就直接舍弃该切割符,不会再切割
		System.out.println(Arrays.toString(ss));
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值