Java正則表現(マッチング、カット、置換、取得)などの方法
正規表現:一定の規則を満たす表現
役割:文字列を専門に操作するために使用されます。
特徴:いくつかの特定の記号に使用してコード操作を表します。このように書くことを簡略化します。主に特殊な記号の使用を勉強します。
利点:文字列の複雑な操作を簡単にすることができます。
欠点:符号の定義が多ければ多いほど、正則が長くなり、読書性が悪くなります。
具体的な操作:
1.マッチング:String matches方法
すべての文字列に規則的にマッチします。一致しないものがあれば、マッチは終了します。
2.カット:Stering sqlit();
3.代替:replace All();
4.取得:文字列の中の規則に合った部分列を取り出します。
操作手順:
まず、正則表を対象に大きくカプセル化します。
そして、正則オブジェクトと操作する文字呂を関連付ける。
続いて、関連したら、正規マッチのエンジンを取得します。
最後に、エンジンでルールに合った部分列を操作します。
役割:文字列を専門に操作するために使用されます。
特徴:いくつかの特定の記号に使用してコード操作を表します。このように書くことを簡略化します。主に特殊な記号の使用を勉強します。
利点:文字列の複雑な操作を簡単にすることができます。
欠点:符号の定義が多ければ多いほど、正則が長くなり、読書性が悪くなります。
具体的な操作:
1.マッチング:String matches方法
すべての文字列に規則的にマッチします。一致しないものがあれば、マッチは終了します。
2.カット:Stering sqlit();
3.代替:replace All();
4.取得:文字列の中の規則に合った部分列を取り出します。
操作手順:
まず、正則表を対象に大きくカプセル化します。
そして、正則オブジェクトと操作する文字呂を関連付ける。
続いて、関連したら、正規マッチのエンジンを取得します。
最後に、エンジンでルールに合った部分列を操作します。
public class RegexDemo {
public static void main(String[] args){
//checkQQ_1();
//checkqq();
//Demo();
//checkTel();
//splitDemo();//
String str="oadi3298324892adkal309290kdoda300000";// #
replaceAllDemo(str,"\\d{7,}","#");
String str1="aadkkkaooelliwoonbvxkksoll";// &
replaceAllDemo(str1,"(.)\\1+","&");
String str2="aadkkkaooelliwoonbvxkksoll";//
replaceAllDemo(str1,"(.)\\1+","$1");// $,$1
}
/*
QQ
, String , ,
*/
public static void checkQQ_1(){
String qq="a12345455";
int len=qq.length();
if(len>=5&&len<=15){
if(!qq.startsWith("0")){
// char[] arr=qq.toCharArray();//
// boolean flag=true;
// for(int x=0;x<arr.length;x++){
// if(!(arr[x]>='0'&&arr[x]<='9')){
// flag=false;
// break;
// }
// }
// if(flag){
// System.out.println("qq:"+qq);
// }
// else{
// System.out.println(" ");
// }
try {
long l=Long.parseLong(qq);
System.out.println("qq:"+l);
} catch (Exception e) {
System.out.println(" ");
}
}
else{
System.out.println(" 0 ");
}
}
}
public static void checkqq(){
String qq="1882345";
String regex="[1-9]\\d{4,14}";//
Boolean flag=qq.matches(regex);
if(flag){
System.out.println(qq+"...is ok");
}else{
System.out.println(qq+"...is not ok");
}
}
public static void Demo(){
String str="c";
String reg="[bcd][a-zA-Z]\\d";//\\d :[0-9]
// , , , , ,
// \d*,
boolean b=str.matches(reg);
System.out.println(b);
}
/*
* 13xxxx,15xxx ,18xx
*/
public static void checkTel(){
String tel="13900008792";
String telReg="1[358]\\d{9}";
System.out.println(tel.matches(telReg));
}
public static void splitDemo(){
String str="zhangsan lisi wangxu";
String reg=" +";// , , ,
// , 。 .
// . , 。 String reg="\\."
// \\, (c:\\abc\\a.txt), String reg="\\\\"
// sqltDemo("ddkdakfdssieowor","(.)\\1)"); . ,\1
// ddd ssss ttttt , "+", "(.)\\1+)" , "+"
String [] arr=str.split(reg);
for(String s:arr){
System.out.println(s);
}
}
public static void replaceAllDemo(String str,String reg,String newStr){
str=str.replaceAll(reg, newStr);
System.out.println(str);
}
}
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexDemo2 {
public static void main(String [] args){
getDemo();
}
public static void getDemo(){
String str="ming tian jiu yao fang jia le,da jia";
//str="123456";
String reg="\\b[a-z]{3}\\b";//
// 。
Pattern p=Pattern.compile(reg);
// , 。 。
//
Matcher m=p.matcher(str);
//System.out.println(m.matches());// String matches , Pattern Matcher 。
// String , , , , matches
//boolean b=m.find();// , 。
//System.out.println(b);
//System.out.println(m.matches());// , , , ,m.matcher() ,
// false, ming true, find, tian 。
while(m.find()){
System.out.println(m.group());
System.out.println(m.start()+"...."+m.end());//
}
//group
}
}