【java】正则表达式

参考文章:菜鸟

正则表达式

定义

正则表达式定义了字符串的模式
可以用来搜索、编辑或处理文本
并不限于某一种语言,但是每种语言中有细微的差别

分类

常用

分类 解释 示例 示例解释 备注
普通字符串 匹配相等的字符串 hello world 匹配“hello world” 全部匹配
. (点号) 匹配任意一个字符;只能是一个字符 . “a”,“1” … 只能是一个字符串
\s+ 匹配一个或多个空格 \s+ “ ”,“ ” 注意转义
^ 规定以何种字符串开始 ^123 只使用"^"时,表示全匹配。
\d 匹配一个数字 \d 匹配一个数字 范围[0~9]
\d+ 匹配一个或多个数字 \d+ 匹配一位或多位数字
? 设置括号内选项可选 ^\d+(.\d+)? 以整数开始,可以跟小数如 123,1.567 括号中的内容规定了整数后面可以加的类型,如本例中,’123java‘为非法内容
. 匹配“.”(点号) ^\d+(.\d+)? 以整数开始,可以跟小数

代码实践

public class RegexDemo {
    public static void main(String[] args) {
        example01(".*com.*","I am the one from com.org."); // true
        example01(".","a"); // true
        example01(".","4"); // true
        example01("\\s+",""); // false
        example01("\\s+"," "); // true
        example01("\\s+","     "); // true
        example01("^123","123"); // true
        example01("^123","1234"); // false
        example01("\\d","1"); // true
        example01("\\d+","1132"); // false
        example01("^\\d+(\\.\\d+)?","123"); // true
        example01("^\\d+(\\.\\d+)?","123.2556"); // true

    }

    /**
     *
     * @param pattern
     * @param content
     */
    public static void example01(String pattern,String content) {
        // 是否匹配
        boolean isMatch = Pattern.matches(pattern,content);
        System.out.println("pattern: "+pattern);
        System.out.println("content: "+content);
        System.out.println("result: "+isMatch);
        System.out.println("========分割线========");
    }
}

结果:

pattern: .*com.*
content: I am the one from com.org.
result: true
========分割线========
pattern: .
content: a
result: true
========分割线========
pattern: .
content: 4
result: true
========分割线========
pattern: \s+
content: 
result: false
========分割线========
pattern: \s+
content:  
result: true
========分割线========
pattern: \s+
content:      
result: true
========分割线========
pattern: ^123
content: 123
result: true
========分割线========
pattern: ^123
content: 1234
result: false
========分割线========
pattern: \d
content: 1
result: true
========分割线========
pattern: \d+
content: 1132
result: true
========分割线========
pattern: ^\d+(\.\d+)?
content: 123
result: true
========分割线========
pattern: ^\d+(\.\d+)?
content: 123java
result: false
========分割线========
pattern: ^\d+(\.\d+)?
content: 123.2556
result: true
========分割线========
上一篇:内存字符串暴力搜索定位代码


下一篇:JS基础知识(十一):正则表达式