正则表达式
来源:互联网 发布:php 根据ip 查询地区 编辑:程序博客网 时间:2024/06/03 17:59
正则表达式
正则表达式:符合一定规则的字符串
在API中查询Pattern类即可查看正则表达式的要求与规则
注意:以后不需要我们自己写需要匹配的正则表达式,直接网上百度就可以了!
规则字符在java.util.regex Pattern类中
A:字符
x 字符x(举例:a,1)
\ 反斜线字符
B:字符类
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[0-9] 0-9字符
C:预定义字符类
. 任何字符
\d 数字:[0-9]
\w 单词字符:[a-zA-Z_0-9]
D:Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
判断功能:
public boolean matches(String regex):告知此字符串是否匹配给定的正则表达式。
分割功能
public String[] split(String regex):根据给定正则表达式的匹配拆分此字符串。
public String replaceAll(String regex,String replacement):把符合regex的用replacement替换
例如:案例:键盘录入qq号码,校验QQ号码。
需求:
1:要求必须是5-15位数字
2:0不能开头
用正则表达式表示就是:[1-9][0-9]{4-15}
package com.thz_01;import java.util.Scanner;/** * 案例: 键盘录入qq号码,校验QQ号码。 * 需求: 1:要求必须是5-15位数字 * 2:0不能开头 */public class RegexDemo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 键盘录入qq号码 System.out.println("请输入您的qq号码"); // 获取录入数据 String qq = sc.nextLine(); //创建方法,里面使用正则表达式实现 System.out.println(isCheck2(qq)); } private static boolean isCheck2(String qq) { //定义正则表达式 String reg = "[1-9][0-9]{4,14}"; return qq.matches(reg); }}
package com.edu_02;public class RegexDemo { public static void main(String[] args) { // 校验电话号码 /* * 13245678901 13332345678 13456789012 18812345678 18999999999 * 18666666666 18786868686 */ //定义正则表达式 String reg = "1[38][0-9]{9}"; //System.out.println("键盘输入电话号码"); String number = "13245678901"; System.out.println(number.matches(reg)); }}
package com.thz_01;public class RegexDemo { public static void main(String[] args) { /** * 分割如下字符串: String s = "aa,bb,cc"; String s2 = "aa.bb.cc"; String s3 = "aa bb cc"; String s4 = "aa bb cc"; String s5 = "D:\\baidu\\20150826\\day14"; */ String s = "aa,bb,cc"; String reg = ","; String[] strS = s.split(reg); for (int i = 0; i < strS.length; i++) { System.out.println(strS[i]); } System.out.println("--------------------"); String s2 = "aa.bb.cc"; String reg2 = "\\."; String[] strS2 = s2.split(reg2); for (int i = 0; i < strS2.length; i++) { System.out.println(strS2[i]); } System.out.println("-------------------------"); String s3 = "aa bb cc"; String reg3 = " "; String[] strS3 = s3.split(reg3); for (int i = 0; i < strS3.length; i++) { System.out.println(strS3[i]); } System.out.println("-----------------"); String s4 = "aa bb cc"; String reg4 = " +"; String[] strS4 = s4.split(reg4); for (int i = 0; i < strS4.length; i++) { System.out.println(strS4[i]); } System.out.println("--------------------"); String s5 = "D:\\baidu\\20150826\\day14"; String reg5 = "\\\\"; String[] strS5 = s5.split(reg5); for (int i = 0; i < strS5.length; i++) { System.out.println(strS5[i]); } }}
package com.thz_01;import java.util.Arrays;/* * 我有如下一个字符串:”91 27 46 38 50” 请写代码实现最终输出结果是:”27 38 46 50 91” */public class SplitExercise { public static void main(String[] args) { String str = "91 27 46 38 50"; //设定正则表达式 String reg = " "; //运用split方法切割 String[] strs = str.split(reg); //将String数组转换为int数组并排序 int[] arr = new int[strs.length]; for (int i = 0; i < arr.length; i++) { arr[i] = Integer.parseInt(strs[i]); } //排序 Arrays.sort(arr); //将int[]转换为StringBuffer StringBuffer sb = new StringBuffer(); for (int i = 0; i < arr.length; i++) { sb.append(arr[i]+" "); } //将StringBuffer转换为String System.out.println(sb.toString()); }}
- 【正则表达式】正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 【java】二分查找 求下界 求上界
- linux初学者周周感悟--makefile
- 必备WordPress插件
- 软考-信息安全工程师-密码学-待更新
- 黑马程序员 十七、面试题之交通灯管理系统—面向对象的分析与设计、Road 类、Lamp 类、LampController 类、MainClass类)
- 正则表达式
- 对于Navicat遇到1130错误的解决方案
- Codeforces 479D Long Jumps【map标记+贪心】
- 思
- 倒排索引
- 链表翻转的迭代和递归解法
- HTTP 1.1与HTTP 1.0的比较
- select查询语句
- CHD2017校赛题解