参考文章:菜鸟
正则表达式定义了字符串的模式
可以用来搜索、编辑或处理文本
并不限于某一种语言,但是每种语言中有细微的差别
常用
分类 | 解释 | 示例 | 示例解释 | 备注 |
---|---|---|---|---|
普通字符串 | 匹配相等的字符串 | 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 ========分割线========