Java中的正则表达式

xiaoxiao2025-08-13  23

正则表达式 1、 字符  a) x字符x。如‘a’代表字符a  b) \ 反斜线字符用\代表一个  c) \n换行符(‘\u000A’)  d) \r回车符(‘\u000D’) 2、 字符类  a) [abc] a、b或c(简单类)  b) [^abc]除了a、b、c的任何字符  c) [a-zA-Z]a到z或A到Z,两头字母包括在内  d) [0-9] 0到9的字符都包括   i. qq.matches([1-9][0-9]{4,14})代表的是第一位是取1到9,后面紧跟的至少4位最多14位取值是0到9,  最终数据是5-15位   ii. 也可以写作qq.matches([1-9]{1}[0-9]{4,14}) 3、 预定义字符类  a) . 表示任何字符。如果想表示 . 可以用 . 来表示  b) \d表示数字[0-9] 这里需要注意的是此处的\需要用\来代替。  c) \w单词字符:[a-zA-Z_0-9]   i. 在正则表达式里面组成单词的东西必须由这些东西组成 4、 边界匹配器  a) ^行的开头  b) $行的结尾  c) \b单词边界:只要不是单词字符就都是单词边界 5、 数量词  a) X? X一次或一次也没有  b) X* X零次或多次  c) X+ X一次或多次  d) X{n} X恰好n次  e) X{n,} X至少n次  f) X{n,m} X至少n次,但不超过m次 6、 正则表达式的应用  a) public boolean matches(String regex)判断功能   i. 位于String类中告知此字符串是否匹配给定的正则表达式  b) public String [] split (String regex)分割功能   i. String类,根据正则表达式来匹配拆分字符串。   ii. 18-24如果想进行拆分两个数字18和24   iii. String s=”18-24”   iv. String regex=”-”   v. String []array=s.split(regex)   vi. a=Integer.parseInt(array[0]) //18   vii. b=Integer.parseInt(array[1])//24  c) public String replaceAll(String regex,String replacement)替换功能   i. Stirng类   ii. String s=”hel123lowo456rld”;//去除字符串中的数字,变为*   iii. String regex=”\d+”;   iv. String ss=””   v. String result =s.replaceAll(regex,ss);//输出结果为helloworld   vi. //如果想把字符串中每个数字都变为则需要修改String regex=”\d+”;将其修改为String regex=”\d”。  d) 获取功能需要使用Pattern和Matcher类(在下面实例中给出代码)   i. 也可用于判断功能(但是不如上面的a方法进行判断简单)   ii. Pattern p=pattern.compile(“a*b”)//将正则表达式编译成模式对象,a出现零次或多次,b出现一次。   iii. Matcher m=p.matcher(“aaaab”)//通过模式对象得到匹配对象aaaab为匹配字符串   iv. boolean b=m.matches()//b输出结果为true

正则表达式的获取功能实例

package test08_zhengdingbiaodashi; import java.util.regex.Matcher; import java.util.regex.Pattern; //功能实现获取字符串s中的长度为5的独立字符 public class Research { public static void main(String[] args) { //字符串 String s="hello world zfliu 1996 20181025 "; //正定表达式规则,因为是独立字符串此处必须要加上字符\\d以获取字符边界 String regex="\\b\\w{5}\\b"; //把规则编译成模式对象 Pattern p=Pattern.compile(regex); //通过模式对象得到匹配器对象 Matcher m=p.matcher(s); //调用匹配器功能 //创建匹配对象后可以进行三个不同的操作,每个操作都会返回以恶搞boolean值 //1、public boolean matches()方法尝试将整个输入序列与该模式匹配 //2、public boolean lookingAt()尝试将输入序列从头开始与该模式匹配,只从头开始进行一次成功匹配 //3、public boolean find()方法扫描输入序列以查找与该模式匹配的下一个子序列,从头开始可以进行多次成功匹配 //注意每次必须调用find方法之后再调用group方法得到匹配的字符 ///public String group(); while(m.find()) { String s1=m.group(); System.out.println(s1); } } }

输出结果

转载请注明原文地址: https://www.6miu.com/read-5034791.html

最新回复(0)