JavaSE基础正则表达式
来源:互联网 发布:淘宝一件代发怎么付款 编辑:程序博客网 时间:2024/06/05 08:28
正则表达式常用的语法
A:字符
x 字符 x :任意的字符\\反斜线字符 在代码中书写正则表达式:\------>用两个\\代表一个反斜线\t制表符 ('\u0009')\n 新行(换行)符 ('\u000A') IO流中要写入换行符号:windows "\r\n"\r 回车符 ('\u000D')
B:字符类
[abc] a、b 或 c(简单类)[^abc] 任何字符,除了 a、b 或 c(否定) [a-zA-Z]a 到 z 或 A 到 Z,两头的字母包括在内(范围) 当前字母大小均可
C:预定义字符类
任何字符邮箱里面:如果本身就是.,那么在写正在表达式的时候,\.将当前.转义\d 数字:[0-9] \d在正则表达式应用的时候:[0-9]--->\\d\w单词字符:[a-zA-Z_0-9]:简单一些字符串,单词字符(规则:数字或者字母) javascript:[a-zA-Z0-9]
D:边界匹配器
^ 行的开头 $行的结尾\b单词边界 : hello;world:haha:xixi
E:Greedy 数量词
X?X,一次或一次也没有 X*X,零次或多次X+ X,一次或多次X{n} X,恰好 n 次X{n,}X,至少 n 次X{n,m}X,至少 n 次,但是不超过 m 次
/** * */package org.zst.regex;import java.util.*;/**邮箱校验 * @author:zsyht * @date:2017-11-9上午9:08:01 */public class Demo {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.print("请输入一个邮箱地址:");String email = sc.nextLine();//定义正则规则String regex ="[a-zA-Z_0-9]+@[a-zA-Z_0-9]{2,8}(\\.[a-zA-Z]{2,3})+";boolean flag = email.matches(regex);System.out.println("校验结果:"+flag);}}
String的分割功能
public String[] split(String regex):给定正则表达式的匹配拆分此字符串,返回值类型是一个字符串数组类型
/** * */package org.zst.regex;import java.util.Scanner;/** * @author:zsyht * @date:2017-11-9上午10:17:41 */public class Demo2 {public static void main(String[] args) {// 定义一个字符串String ages = "18-22";// 定义正则规则String regex = "-";//返回字符串数组String[] strArray = ages.split(regex);// 如何得到当前字符数组中的元素(转换int类型的数据)int startAge = Integer.parseInt(strArray[0]);int endAge = Integer.parseInt(strArray[1]);// 键盘录入一个年龄,属于int类型的数据Scanner sc = new Scanner(System.in);System.out.print("请您输入一个年龄:");int age = sc.nextInt();// 判断是否符合要求if (age >= startAge && age <= endAge) {System.out.println("年龄符合");} else {System.out.println("年龄不符合");}}}
/** * */package org.zst.regex;/** * @author:zsyht * @date:2017-11-9上午10:31:01 */public class Demo3 {public static void main(String[] args) {String str1 = "aa,bb,cc" ;//使用分割功能String[] strArray1 = str1.split(",") ;//遍历字符串数组for(int x = 0 ; x < strArray1.length; x ++){System.out.print(strArray1[x]+" ");}System.out.println();String str2 = "aa bb cc" ;//使用切割功能:String[] strArray2 = str2.split(" +") ; //空格拼接+,表示空格多次出现for(int x = 0 ; x <strArray2.length ; x++){System.out.print(strArray2[x]+" ");}System.out.println();String str3 = "aa.bb.cc" ;//分割功能String[] strArray3 = str3.split("\\.") ;for(int x =0 ; x<strArray3.length ; x ++){System.out.print(strArray3[x]+" ");}System.out.println();//硬盘上的路径表现形式:用两个反斜线代表一个反斜线//D:\360驱动大师目录String str4 = "D:\\360驱动大师目录" ;//使用分割功能String[] strArray4 = str4.split("\\\\") ;for(int x = 0 ; x <strArray4.length ; x ++){System.out.print(strArray4[x]+" ");}}}
关于模式和匹配器的使用:关于模式和匹配器的使用:获取功能
模式和匹配器基本使用顺序
/** * */package org.zst.regex;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * @author:zsyht * @date:2017-11-9上午10:51:46 */public class Demo4 {public static void main(String[] args) {//public static Pattern compile(String regex)将给定的正则表达式编译成一个模式对象//1)获取模式对象(通过正则规则)Pattern p = Pattern.compile("a*b") ;//2)通过模式获取匹配器对象,(将一个字符串类型的数据)Matcher m = p.matcher("aaaaaab") ;//3)调用Match(匹配器类)中的:public boolean matches():判断当前用户录入的字符串是否和当前的正则规则匹配boolean flag = m.matches() ;System.out.println("flag:"+flag);System.out.println("----------------------------");//上述写法麻烦,要获取模式对象Pattern还要获取匹配器对象:Matcher,然后通过matches()方法返回一个结果//定义一个正则规则String regex = "a*b" ;//指定某一个字符串String str = "aaaaaaab" ;//使用当前给定的字符串调用public boolean matchers(String regex)boolean flag2 = str.matches(regex) ;System.out.println("flag2: "+flag2);}}
阅读全文
0 0
- JavaSE基础:正则表达式
- JavaSE基础正则表达式
- JavaSe基础XX22——正则表达式
- javase正则表达式入门
- JavaSE学习--正则表达式
- Javase—正则表达式
- 黑马程序员——javase基础--正则表达式
- JAVASE--正则表达式、反射技术
- 黑马程序员-javase 正则表达式
- JavaSE笔记之<正则表达式>
- 正则表达式基础表达式
- JavaSE 拾遗(14)——JavaSE 正则表达式
- [javase]Java中正则表达式使用方法详解
- 黑马程序员----JAVASE之正则表达式
- 黑马程序员-JAVASE入门(正则表达式)
- 黑马程序员——JAVASE-正则表达式
- 【JavaSE】day02_正则表达式 、 Object 、 包装类
- 黑马程序员—javaSE—正则表达式
- 作业5
- unity3d 2d游戏相关
- 数组去重的几种方法
- Vegas如何使用透明图像作遮罩?
- 算法题:lintcode#35 翻转链表(java)
- JavaSE基础正则表达式
- python yield 和 yield from用法总结
- MySql计算字段的长度
- 解决SQL Developer无法远程连接Oracle 12c问题
- php---第一个扩展开发
- gcc rpm_使用rpm -qi gcc命令来获取gcc包的版本,安装日期等信息
- Serenity安装和创建DEMO--学习第一天
- Android获取Manifest中<meta-data>元素的值
- Linux动态库与静态库