正则表达式

33 篇文章 0 订阅
30 篇文章 0 订阅

正则表达式

正则表达式:正则表达式通常被用于判断语句中,用来检查某一字符串是否满足某一格式。
规则字符:正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符称为正则表达式的规则字符。(其在java.util.regex Pattern类中)
常见语法

1:字符
	x 			字符 x。举例:'a'表示字符a
	\\ 			反斜线字符。
	\n 			新行(换行)符 ('\u000A') 
	\r 			回车符 ('\u000D')
2:字符类
	[abc] 		a、b 或 c(简单类) 
	[^abc]	 	任何字符,除了 a、b 或 c(否定) 
	[a-zA-Z] 	a到 z 或 A到 Z,两头的字母包括在内(范围) 
	[0-9] 		0到9的字符都包括
3:预定义字符类
	. 			任何字符。我的就是.字符本身,怎么表示呢? \.
	\d		    数字:[0-9]
	\w 			单词字符:[a-zA-Z_0-9]
				(在正则表达式里面组成单词的东西必须有这些东西组成)
4:边界匹配器
	^ 			行的开头 
	$ 			行的结尾 
	\b 			单词边界
				即不是单词字符的地方。
				举例:hello world?haha;xixi
5:Greedy 数量词 
	X? X,		一次或一次也没有 比如""空串 就是没有
	X* X,		零次或多次  大于等于1次 都算多次
	X+ X,		一次或多次
	X{n} X,	恰好 n 次 
	X{n,} X,	至少 n 次 
	X{n,m} X,	至少 n 次,但是不超过 m 次 
例:
public static void main(String[] args) { 
	String regx="[0-9]+";	 //可以出现一个或者多个
    regx="[a-z]?";			 //出现一次,或一次也不要出现 "" 空串就是没有出现 
    regx="[A-Z0-9]*";		 //零次或多次 一次也算多次 
    regx="[a-z]{3}"; 		 // 恰好几次 
    regx="[0-9]{3,}";		 // 至少几次 
    regx="[a-z0-9A-Z]{6,12}"; //等于等于 6 小于等12 
    String regex = "[1-9][0-9]{4,14}"; 
    boolean b = "12300abc".matches(regx); 
    System.out.println(b);
    }

判断功能

String类的功能:public boolean matches(String regex)

分割功能

String类的功能:public String[] split(String regex)

替换功能

String类的功能:public String replaceAll(String regex,String replacement)

Pattern类、Matcher类

   //调用顺序
    Pattern p = Pattern.compile("a*b");
	Matcher m = p.matcher("aaaaab");
	boolean b = m.matches();
//先使用find()方法先找到 ,才能用group()方法获取出来
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexMatches
{
    public static void main( String args[] ){
 
      // 按指定模式在字符串查找
      String line = "This order was placed for QT3000! OK?";
      String pattern = "(\\D*)(\\d+)(.*)";
 
      // 创建 Pattern 对象
      Pattern r = Pattern.compile(pattern);
 
      // 现在创建 matcher 对象
      Matcher m = r.matcher(line);
      if (m.find( )) {
         System.out.println("Found value: " + m.group(0) );
         System.out.println("Found value: " + m.group(1) );
         System.out.println("Found value: " + m.group(2) );
         System.out.println("Found value: " + m.group(3) ); 
      } else {
         System.out.println("NO MATCH");
      }
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值