共计 1662 个字符,预计需要花费 5 分钟才能阅读完成。
download:轻松实现 Rust 零碎入门,实战编译器开发
package test;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
- 正则表达式
- 正则表达式 的用法次要是 4 种方面的应用
- 匹配,宰割,替换,获取.
- 用一些简略的符号来代表代码的操作
- @author cyc
- */
public class Rex {
public static void main(String[] args) { | |
// 针对字符串解决 | |
Rex reg = new Rex(); | |
// 校验 qq 的 reg 正则表达式 | |
// 这里的 \w 是指的是 [a-zA-Z0-9], 还有一个重要的是?,*.+ 这三个别离 | |
//? 示意呈现 1 次或者 1 次都没有,//+ 示意呈现 1 次或者 n 次,//* 示意呈现 0 次或者 n 次,// 还有些非凡的写法 X{n} 恰好 n 次 X{n,} 至多 n 次,X{n,m}n 次到 m 次,String mathReg = "[1-9]\\d{4,19}"; | |
String divisionReg = "(.)\\1+"; | |
//\\b 是指的边界值 | |
String getStringReg = "\\b\\w{3}\\b"; | |
// 字符串匹配 (首位是除 0 的字符串) | |
reg.getMatch("739295732",mathReg); | |
reg.getMatch("039295732",mathReg); | |
// 字符串的替换 | |
// 去除叠词 | |
reg.getReplace("12111123ASDASDAAADDD",divisionReg,"$1"); | |
// 字符串的宰割 | |
// 切割叠词, 反复的 | |
// 这里要晓得一个组的概念 (.)\\1 第二个和第一个至雷同 | |
reg.getDivision("aadddddasdasdasaaaaaassssfq",divisionReg); | |
// 字符串的获取 | |
// 当初获取三个字符串取出 | |
reg.getString("ming tian jiu yao fangjia le",getStringReg); | |
} | |
/** | |
* 获取查问的字符串 | |
* 将匹配的字符串取出 | |
*/ | |
private void getString(String str, String regx) { | |
//1. 将正在表达式封装成对象 Patten 类来实现 | |
Pattern pattern = Pattern.compile(regx); | |
//2. 将字符串和正则表达式相关联 | |
Matcher matcher = pattern.matcher(str); | |
//3.String 对象中的 matches 办法就是通过这个 Matcher 和 pattern 来实现的。System.out.println(matcher.matches()); | |
// 查找合乎规定的子串 | |
while(matcher.find()){ | |
// 获取 字符串 | |
System.out.println(matcher.group()); | |
// 获取的字符串的首地位和末地位 | |
System.out.println(matcher.start()+"--"+matcher.end()); | |
} | |
} | |
/** | |
* 字符串的宰割 | |
*/ | |
private void getDivision(String str, String regx) {String [] dataStr = str.split(regx); | |
for(String s:dataStr){System.out.println("正则表达式宰割 ++"+s); | |
} | |
} | |
/** | |
* 字符串的替换 | |
*/ | |
private void getReplace(String str, String regx,String replaceStr) {String stri = str.replaceAll(regx,replaceStr) ; | |
System.out.println("正则表达式替换"+stri); | |
} | |
/** | |
* 字符串解决之匹配 | |
* String 类中的 match 办法 | |
*/ | |
public void getMatch(String str, String regx){System.out.println("正则表白匹配"+str.matches(regx)); | |
} |
}
正文完