加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式

发布时间:2020-12-13 19:48:30 所属栏目:百科 来源:网络整理
导读:0. 正则表达式: 符合一定规则的表达式. 用于专门操作字符串. 1. 用到的类 java.lang.String和java.util.regex. 2. 用String的matches()方法的栗子: /* * 判断QQ号是否合法. * */public class RegexDemo {public static void main(String[] args) {checkQQ();

0. 正则表达式: 符合一定规则的表达式. 用于专门操作字符串.


1. 用到的类java.lang.String和java.util.regex.


2. 用String的matches()方法的栗子:

/*
 * 判断QQ号是否合法.
 * 
 */

public class RegexDemo {

	public static void main(String[] args) {

		checkQQ();
	}

	public static void checkQQ()
	{
		String qq = "12325925a2";
		
		String regex = "[1-9][0-9]{4,14}";		//定义匹配规则
		
		boolean flag = qq.matches(regex);
		if(flag)
			System.out.println(qq+"...is ok");
		else
			System.out.println(qq+"...wrong!!");
	}
	
}


3. 正则的功能: 匹配、切割、替换、获取等

4. 匹配功能: String.matches()方法.

代表
n 代表换行
...等等...
[abc] 代表a或b或c (可以是数字)
[^abc] 代表除a,b,c以外的
[a-zA-Z] 代表a到z和A到Z并集
. 代表任意字符
d 数字[0-9]
D 除0到9
s 代表空白字符,[ tnx0Bfr]
S 非空白字符
w 单词字符[a-zA-Z0-9]
W 代表[^w]
X? 代表X出现一次或没有
X*? 出现零次或多次
X+? 代表X出现一次或多次
X{n} 出现n次
X{n,} 出现最少n次

5. 切割功能: String的split()方法.
(.)1 用小括号括起来表示组,编号从左到右从1开始(组0代表整个表达式). 1表示第一组所匹配过的再次出现.
例如: "sdfqqKjljkksdzz".split("(.)1") 可以将字符串从qq,kk,zz处分割.
6. 替换功能: String的replaceAll()方法和replaceFirst().
"abccdeffg".replaceAll("(.)1","$1"); 得到"abcdefg"字符串. $符号表示取前一个正则表达式的组.
7. 获取功能:
  1. 将正则表达式封装成对象.
  2. 让正则对象和字符串关联.
  3. 关联后,获取正则匹配引擎.
  4. 通过引擎对符合规则的字串进行操作,比如取出使用java.util.Matcher的group()方法取出,使用group()取出之前需要先用find()方法查找一下.

8. 取出长为3的单词的例子:
import java.util.regex.*;

class RegexDemo2
{
	public static void main(String[] args)
	{
		getDemo();
	}

// 获取长为三的单词. 
	public static void getDemo()
	{
		String str = "ming tian jiu yao fang jia le,da jia. ";

		String reg = "b[a-zA-Z]{3}b";

		Pattern p = Pattern.compile(reg);
	
		Matcher m = p.matcher(str);

		while(m.find())
		{
			System.out.println(m.group());
			System.out.println(m.start()+"...."+m.end());
		}
	}
}

9. 这个讲正则的,虽然是Python语言中的正则应用,但是大部分内容还是同样适用的.
http://wiki.ubuntu.org.cn/Python%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97

10.Jamie Zawinski说:

Some people,when confronted with a problem,think "I know,I'll use regular expressions." Now they have two problems.

当一个人遇到问题的时候想:"我用正则就能解决",好吧,现在他们一共有俩问题了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读