正则表达式

1 基本格式 :字符{个数}
2 常用符号
. 代表一个字符的通配符 能和回车之外的任何字符匹配
[] 字符集 能和括号内的任何一个字符相匹配。方括号内也可以表示一个范围,用“-”符号将起
始和末尾字符区分开来,例如[0-9]
[^] 排斥型字符集 能和集合之外的任意字符匹配
^ 起始位置 定位到一行的起始位置处并向后匹配
$ 结束位置 定位到一行的结尾处并向前匹配
\b 单词边界
\B 非单词边界
() 组 按子表达式进行分组
| 或 或关系的逻辑选择,通常和组合结合使用
\ 转义 匹配反斜杠之后的字符,所以可以匹配一些特殊符号
* 零个或多个 匹配表达式首项字符的零个或多个副本
+ 一个或多个 匹配表达式的首项字符的一个或多个字符
? 零个或一个 匹配表达式首项字符的一个或零个副本
n 重复 匹配表达式首项字符的n个副本
3 关于字符
\d 表示数字,相当于[0-9]
\D 表示非数字,相当于[^0-9]
\s 表示空白符,相当于[\t\n\x0B\f\r]
\S 表示非空白字符,相当于[^\s]
\w 表示单词字符,相当于[a-zA-Z_0-9]
\W 表示非单词字符,相当于[^\w]
4 举例:[0-9]{2,4}\b。 可以匹配 123 1988 2015 16
5.测试工具推荐 正则表达式测试工具 QRe
6 学习网址推荐 正则表达式30分钟入门教程http://deerchao.net/tutorials/regex/regex-1.htm

使用例子:将多个空格替换为一个空格:

public static String format(String value) {
        String stmt_text =    value.trim().replaceAll("\\s{2,}", " ");
        String abc = stmt_text.replace(" ", ",");
        return abc;
    }

统计一篇文章中英文单词的数量

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

/**
 * 本文是 编写高质量代码之Java 秦小波 成林 著 
 * 建议57:推荐在复杂字符串操作中使用正则表达式  学习笔记
 * @author Administrator
 *
 */

public class RegularExpressions {

    public static void main(String[] args) {
        //接收键盘输入 
        Scanner input = new Scanner(System.in);

        while(input.hasNext()){
            String str = input.nextLine();
             //正则表达式对象
            //在Java的正则表达式中"\b"表示的是一个单词的边界,
            //它是一个位置界定符,一边为字符或数字,另外一边则非字符或数字,
            //"\w"(它表示的是字符或数字)
            Pattern pattern = Pattern.compile("\\b\\w+\\b");
            Matcher matcher = pattern.matcher(str);
            //记录单词数量
            int wordsCount = 0;
            while (matcher.find()) {
                wordsCount++;
            }
            System.out.println(str+" 单词数 "+wordsCount);
        }
    }
}

匹配手机号

[1] 匹配1 ,[0-9]匹配 0-9,{10}个数为1o ,一共11位
Pattern.compile("[1][0-9]{10}").matcher(内容).matches()

匹配邮箱

 Pattern.compile("^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$").matcher(输入内容).matches()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值