正则表达式
来源:互联网 发布:老凤祥淘宝上怎么没了 编辑:程序博客网 时间:2024/06/03 07:05
1、 字符集
1、[1234] 表示 1,2,3,4 之一
2、[^12] 表示除了 1,2
3、[1-5] 表示 1,2,3,4,5
4、[a-f] 表示 a-f 之间的
[0-9a-fA-F] 表示一个16进制字符 0[xX][0-9a-fA-F]{1,8} 表示整数的16进制数表达式 [\w-]{8,15} 表示8-15个人以字符、下划线、数字及“-”
2、预定义字符集
1、\d 表示[0-9]
2、“.”点 表示任意字符
3、\w 表示单词字符 [0-9a-zA-Z_] 注:包含下划线“_”
4、\s 表示匹配空白: \t \n \r \b \p
5、\D (不常用)表示非数字
6、\S (不常用)表示非空白
7、\W (不常用)表示非单词字符 [0-9a-zA-Z_]
8、{m,n} 表示数词m到n个
9、{n} 表示数词n个,比如表示“5个以上”用{5,}
10、? 表示能出现0到1次 {0,1}
11、+ 表示能出现1到n次 {1,}
12、* 表示能出现0到n次 {0,}
3、 正则表达式以“^”开头,“$”结尾
4、 常用正则表达式写法
邮政编码:^[0-9][0-9][0-9][0-9][0-9][0-9]$
用户名规则:^\w{8,10}$
【解释】可出现8-10个单词或字符
电话号码:^(+86|0086)?\s?\d{11}$
例子:+86 13912345678
身份证号码:^\d{15}(\d{2}[0-9xX])?$
一个点的坐标:^\d+(,\s*|\s+)\d+$
日期:2011-01-30
^\d{4}-\d{2}-\d{2}$
IP地址:192.168.0.2
^\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}$
package com.wyg.test;import java.util.Scanner;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test{ public static void main(String[] args){ Scanner scanner = new Scanner(System.in); while(true){ System.out.println("请输入要匹配的字符串:"); Pattern pattern = Pattern.compile(scanner.nextLine()); System.out.println("输入用来匹配的字符串:"); Matcher matcher = pattern.matcher(scanner.nextLine()); boolean found = false; while(matcher.find()){ //java中的字符串范围都是包含前下标,不包含后下标 System.out.printf("找到\"%s\"起始位置:%d; 结束位置:%d.%n", matcher.group(), matcher.start(), matcher.end()); found = true; if(!found){ System.out.println("没有找到匹配!"); } } } }}
package com.wyg.test;import java.util.Arrays;import java.util.Scanner;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test{ public static void main(String[] args){ Scanner console = new Scanner(System.in); String regex = "^\\s*([A-Da-d](\\s+|,\\s*)?){1,4}\\s*$"; String str; while (true) { System.out.println("输入选择答案(A-D):"); str = console.nextLine(); // 检查用户的输入str符合正则表达式reg规定的规则 if (str.matches(regex)) { // str符合规则返回true break; // 符合规则就结束输入 } System.out.println("错了!再试试!"); } // System.out.println(str.toUpperCase()); // " A B, C, " -> " A B C " -> "A B C" -> "A","B","C" regex = "\\s+|,\\s*"; // 替换规则 str = str.replaceAll(regex, " ").toUpperCase().trim(); regex = "\\s+"; // 切分规则 String[] ans = str.split(regex); // 切分字符串为数组 Arrays.sort(ans); // 排序答案 System.out.println(Arrays.toString(ans)); }}
- 【正则表达式】正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- solidworks画螺纹
- oracle用户创建及权限设置
- NoSQL 简介
- VS中常见报错及解决方法
- cocos2d-x问题与开发技巧汇总(转载专用)
- 正则表达式
- EditText系列(2)-修改回车键信息
- 整理
- 获取当前时间放到页面
- CDN的实现原理
- 将截断字符串或二进制数据。
- word2vec
- Jquery JS 正确的比较两个数字大小的方法
- 用两个使用Caffe的小项目案例演示迁移学习的实用性