JAVA中正規表示式匹配,替換,查詢,切割的方法
正規表示式的查詢;主要是用到String類中的split()方法
String str;str.split();方法中傳入按照什麼規則擷取,返回一個String陣列
常見的擷取規則:
str.split("\\.")按照.來擷取
str.split(" ")按照空格擷取
str.split("cc+")按照c字元來擷取,2個c或以上
str.split((1)\\.+)按照字串中含有2個字元或以上的地方擷取(1)表示分組為1
擷取的例子;
按照分組擷取;擷取的位置在兩個或兩個以上的地方
String str = "publicstaticccvoidddmain";
//對錶達式進分組重用
String ragex1="(.)\\1+";
String[] ss = str.split(ragex1);
for(String st:ss){
System.out.println(st);
}
//按照兩個cc+來擷取
String ragex = " ";
//切割
String strs = "publicstaticccvoidddmain";
String ragexs = "cc+";
String[] s = strs.split(ragexs);
for(String SSSS :s){
System.out.println(SSSS);
}
System.out.println("=-=========");
正規表示式中的替換;
語法定義規則;
String s =str.replaceAll(ragex, newstr);
字串中的替換是replace();
將4個或4個以上的連續的數字替換成*
// 替換
String str="wei232123jin234";
String ragex = "\\d{4,}";
String newstr = "*";
String s =str.replaceAll(ragex, newstr);
System.out.println(s);
將重複的字串換成一個*
.匹配任意一個字元,不包括換行
(.)小括號表示捕獲這個匹配到的字元
\\1表示捕獲的組號,也就是()內的字元
那麼(.)\\1+就是匹配重複出現的字串一個或者多個
String str ="wwweiei222222jjjiiinnn1232";
String ragex ="(.)\\1+";//\\1表示第一個捕獲組,
String newStr ="*";
String s = str.replaceAll(ragex, newStr);
System.out.println(s);
將 我...我...要..要.吃...吃...飯 換成 我要吃飯
String str = "我...我...要..要.吃...吃...飯";
String regex = "\\.+";
String newStr = "";
str=test(str, regex, newStr);
regex = "(.)\\1+";
newStr = "$1";
test(str, regex, newStr);
public static String test(String str, String regex, String newStr) {
String str2 = str.replaceAll(regex, newStr);
System.out.println(str2);
return str2;
}
正規表示式的字串的獲取
1,根據定義的正規表示式建立Pattern物件
2,使用Pattern物件類匹配
3,判斷是否為true
4,加入到組
String str = "public static void main(String[] args)"
+ " public static void main(String[] args)public static void main(String[] args)";
String ragex = "\\b[a-zA-Z]{4,5}\\b";
Pattern p =Pattern.compile(ragex);
Matcher m = p.matcher(str);
while(m.find()){
String s = m.group();
System.out.println(s);
}
示例程式碼
mport java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class test {
public static void main(String[] args) {
getStrings(); //用正規表示式獲取指定字串內容中的指定內容
System.out.println("********************");
replace(); //用正規表示式替換字串內容
System.out.println("********************");
strSplit(); //使用正規表示式切割字串
System.out.println("********************");
strMatch(); //字串匹配
}
private static void strMatch() {
String phone = "13539770000";
//檢查phone是否是合格的手機號(標準:1開頭,第二位為3,5,8,後9位為任意數字)
System.out.println(phone + ":" + phone.matches("1[358][0-9]{9,9}")); //true
String str = "abcd12345efghijklmn";
//檢查str中間是否包含12345
System.out.println(str + ":" + str.matches("\\w+12345\\w+")); //true
System.out.println(str + ":" + str.matches("\\w+123456\\w+")); //false
}
private static void strSplit() {
String str = "asfasf.sdfsaf.sdfsdfas.asdfasfdasfd.wrqwrwqer.asfsafasf.safgfdgdsg";
String[] strs = str.split("\\.");
for (String s : strs){
System.out.println(s);
}
}
private static void getStrings() {
String str = "rrwerqq84461376qqasfdasdfrrwerqq84461377qqasfdasdaa654645aafrrwerqq84461378qqasfdaa654646aaasdfrrwerqq84461379qqasfdasdfrrwerqq84461376qqasfdasdf";
Pattern p = Pattern.compile("qq(.*?)qq");
Matcher m = p.matcher(str);
ArrayList<String> strs = new ArrayList<String>();
while (m.find()) {
strs.add(m.group(1));
}
for (String s : strs){
System.out.println(s);
}
}
private static void replace() {
String str = "asfas5fsaf5s4fs6af.sdaf.asf.wqre.qwr.fdsf.asf.asf.asf";
//將字串中的.替換成_,因為.是特殊字元,所以要用\.表達,又因為\是特殊字元,所以要用\\.來表達.
str = str.replaceAll("\\.", "_");
System.out.println(str);
}
相關文章
- Java經典例項:正規表示式,替換匹配的文字Java
- java正規表示式替換Java
- Java中正規表示式的使用Java
- 正規表示式的字串替換方法字串
- eclipse使用技巧---使用正規表示式查詢替換Eclipse
- Java 正規表示式替換斜槓Java
- 使用正規表示式替換字串的方法(replace方法)字串
- VS.net 中,使用正規表示式進行查詢、替換
- vi 正規表示式替換
- JavaScript中正規表示式的使用JavaScript
- PostgreSQL 查詢替換函式SQL函式
- 正規表示式查詢相似單詞的方法
- 匹配換行的正規表示式程式碼
- Oracle正規表示式匹配中文的方法Oracle
- java和js中正規表示式的用法和區別JavaJS
- JS中正規表示式研究(一)JS
- 常用正規表示式匹配模式(java)模式Java
- 詳解Javascript中正規表示式的使用JavaScript
- python使用正規表示式文字替換Python
- postgres中正規表示式及轉義
- SQLSERVER中正規表示式封裝使用SQLServer封裝
- php中正規表示式中的特殊符號PHP符號
- javascript中正規表示式的基礎語法JavaScript
- linux 中正規表示式中?號的作用Linux
- vim查詢替換
- 簡單介紹Idea使用正規表示式批量替換字串的方法Idea字串
- JS 中正規表示式必知必會JS
- 批次word文件內容查詢替換的方法
- 正規表示式匹配原理
- [譯]正規表示式匹配
- 字串——正規表示式匹配字串
- iOS正規表示式匹配iOS
- Oracle SQL 語句中正規表示式的應用OracleSQL
- 淺析正規表示式模式匹配的 String 方法模式
- C#用正規表示式高效替換變數C#變數
- 字串查詢和替換字串
- PostgreSQL Like查詢與正規表示式SQL
- UltraEdit利用正規表示式查詢(轉)