Java 기초 --- 정규 표현 식
19242 단어 필기 하 다.
문자 x 문자 x \ 역 사선 문자 \t 탭 문자 ('\ u0009') 새 줄 (줄 바 꿈) 문자 ('\ u000A') \r Enter 부호 ('\ \ u000D') \e 전의 부호 ('\ \ u001B')
2. 문자 클래스 [abc] a, b 또는 c (단순 클래스) [^ abc] a, b 또는 c 를 제외 한 모든 문자 [a - zA - Z] a 에서 z 또는 A 에서 Z 까지 두 글자 가 포함 되 어 있 습 니 다 (범위) [a - d [m - p] a 에서 d 또는 m 에서 p: [a - dm - p] (집합) [a - z & & [def] d, e 또는 f (교차) [a - z & & [^ bc] a 에서 z 까지 b 와 c: [ad - z] (빼 기) [a - z & & [^ m - p] a 에서 z, m 에서 p: [a - lq - z] (빼 기)
3. 미리 정 의 된 문자 클래스 . 모든 문자 (줄 끝 문자 와 일치 할 수도 있 고 일치 하지 않 을 수도 있 습 니 다) \d 숫자: [0 - 9] \D 비 숫자: [^ 0 - 9] \s 공백 문자: [\ t \ x0B \ f \ r] \S 비 공백 문자: [^ \] \w 단어 문자: [a - zA - Z 0 - 9] \W 비 단어 문자: [^ \ w]
4. 경계 정합 기 ^ 줄 의 첫머리 $ 행 의 끝 \단어 경계 \B 비 단어 경계 \A 입력 의 시작 \G 의 이전 일치 하 는 끝 \Z 입력 의 끝 은 마지막 끝 문자 에 만 사 용 됩 니 다 (있 으 면) \z 입력 의 끝
5. Greedy 수량 어 X? X, 한 번 또는 한 번 도 없다. X * X, 0 회 또는 여러 번 X + X, 한 번 또는 여러 번 X {n} X, 마침 n 회 X {n,} X, 최소 n 회 X {n, m} X, 적어도 n 번 이지 만 m 번 을 초과 하지 않 습 니 다.
6. 그룹 과 캡 처 캡 처 그룹 은 왼쪽 에서 오른쪽으로 괄호 를 계산 하여 번 호 를 매 길 수 있 습 니 다.예 를 들 어 표현 식 (A) (B (C))) 에 다음 과 같은 그룹 이 네 개 있 습 니 다. 1 ((A)(B(C))) 2 \A 3 (B(C)) 4 (C)
정규 표현 식 기능 예제: 일치, 절단, 교체, 가 져 오기.
package ;
import java.io.IOException;
import java.io.InputStream;
/**
*
* @author ZHANGYU
* : 。
* : 。 。
* 。
* : 。
* :
* : 。
* : qq 。
* :5-15 0 。
*
* :
* 1 :String matches 。 , , false
*
*/
public class test1 {
public static void main(String[] args) throws IOException{
String qq="123456789a";
Check1(qq);
check2(qq);
check3(qq);// qq
checkTel();//
splitDemo("zhang.li.wang","\\.");// .
splitDemo("zhang li wang"," +");// 。
splitDemo("c:\\a\\d\\c.txt","\\\\");
splitDemo("asddsjjlkwwaao","(.)\\1");// 。 , , () ,
splitDemo("asddsjjjlkwwwsaao","(.)\\1+");// 1 , ,
(n ) 。
String str="sd324234df54345345fgt4343fd435234";// #
replaceAllDemo(str,"\\d{5,}","#");// 5 5 #
String str1="sdsddwekkl";
replaceAllDemo(str1,"(.)\\1+","#");// #
}
private static void replaceAllDemo(String str, String strRegx, String newstr) {
// TODO Auto-generated method stub
str=str.replaceAll(strRegx, newstr);
System.out.println(str);
}
private static void splitDemo(String str,String strReg) {
// TODO Auto-generated method stub
String[] s=str.split(strReg);
for(String i:s){
System.out.println(i);
}
}
/*
* :
* :13xxxxx 15xxxxx 18xxxxx
*/
private static void checkTel() {
// TODO Auto-generated method stub
String tel="13888882134";
String telReg="1[358]\\d{9}";
boolean flage=tel.matches(telReg);// 。
System.out.println("tel:"+ flage);
}
// QQ
private static void check3(String qq) {
// TODO Auto-generated method stub
//String regex="[1-9][0-9]{4,14}";
String regex="[1-9]\\d{4,14}";
boolean flage=qq.matches(regex);
if(flage==true)
System.out.println("qq:"+qq);
else
System.out.println(" ");
}
private static void check2(String qq) {
// TODO Auto-generated method stub
if(qq.length()>=5&&qq.length()<=15){
if(!(qq.startsWith("0"))){
try{
Long l=Long.parseLong(qq);
System.out.println(" ");
}catch(NumberFormatException e){
System.out.println(" ");
}
}
else{
System.out.println(" 0");
}
}else
System.out.println(" ");
}
private static void Check1(String qq) {
// TODO Auto-generated method stub
if(qq.length()>=5&&qq.length()<=15){
if(!(qq.startsWith("0"))){
char[] ch=qq.toCharArray();
boolean flage=false;
for(int i=0;iif(ch[i]>='0'&&ch[i]<='9')
flage=true;
else
flage=false;
}
if(flage==true){
System.out.println(" ");
}
else
System.out.println(" ");
}
else{
System.out.println(" 0");
}
}else
System.out.println(" ");
}
}
가 져 오기 기능 의 예제:
package ;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
* :
*
*
* :
* 1、 。
* 2、 。
* 3、 , 。
* 4、 。 : 。
*/
public class test3 {
public static void main(String[] args){
Regx();
}
public static void Regx(){
String str="hahaha lwa kd sdi d s ds ew ssd";
String reg="\\b[a-z]{3}\\b";
// 。
Pattern p=Pattern.compile(reg);
// 。
Matcher m=p.matcher(str);// String matches , Pattern Matcher
// String , , 。
//m.find()// , 。
while(m.find()){
System.out.println(m.group());// 。
System.out.println(m.start()+"-----"+m.end());
}
}
}
정규 표현 식 약간의 연습.
연습 1:
package ;
/*
* : : 。
*
* ? ?
* :
* 1、 , 。
* 2、 , 。
* 3、 。 , 。
* 4、 。 。 。
*
*/
public class test4 {
public static void main(String[] args){
String str=" ... ... ... ....... .... ... ... .... ";
/*
* :
* -- 。
* 1、 .
* 2、 。
*
*/
str=str.replaceAll("\\.+", "");
System.out.println(str);
str=str.replaceAll("(.)\\1+", "$1");
System.out.println(str);
}
}
연습 2:
package ;
import java.util.TreeSet;
public class test5 {
public static void main(String[] args){
ipSort();
emal();
}
private static void emal() {
// TODO Auto-generated method stub
/*
*
*
*/
String str="[email protected]";
String Regx="[a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\\.[a-zA-Z0-9_]+)+";//
String Regx1="\\w+@\\w+(\\.\\w+)+";//
System.out.println(str.matches(Regx));
}
private static void ipSort() {
// TODO Auto-generated method stub
/*
* 192.168.1.254 102.49.23.013 10.10.10.10 2.2.2.2. 8.109.90.30
* ip 。
*
* , 。
* 1、 0 ,
* 2、 , ip 。
*/
String ip="192.168.1.254 102.49.23.013 10.10.10.10 2.2.2.2. 8.109.90.30";
ip=ip.replaceAll("(\\d+)", "00$1");
System.out.println(ip);
ip=ip.replaceAll("0*(\\d{3})", "$1");
System.out.println(ip);
String[] arr=ip.split(" +");
TreeSet ts=new TreeSet();
for(String s:arr)
ts.add(s);
for(String s:ts)
System.out.println(s.replaceAll("0*(\\d+)", "$1"));
}
}
연습 3: 메 일 주 소 를 가 져 옵 니 다.
package ;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
* ( )
*/
public class test6 {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
getMile();
getMile_1();
}
private static void getMile_1() throws Exception {
// TODO Auto-generated method stub
URL url=new URL(" ");//
URLConnection conn=url.openConnection(); //
BufferedReader bufr=new BufferedReader(new InputStreamReader(conn.getInputStream()));//
String regx="\\w+@\\w+(\\.\\w+)+";
Pattern p=Pattern.compile(regx);// Pattern ,
String line=null;
while((line=bufr.readLine())!=null){
Matcher m=p.matcher(line);
while(m.find())
System.out.println(m.group());
}
}
private static void getMile() throws Exception {
// TODO Auto-generated method stub
BufferedReader bur=new BufferedReader(new FileReader("mail.txt"));
String line=null;
String regx="\\w+@\\w+(\\.\\w+)+";
Pattern p=Pattern.compile(regx);
while((line=bur.readLine())!=null){
Matcher m=p.matcher(line);
while(m.find())
System.out.println(m.group());
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Dubbo (2): zookeeper 등록 센터Zookeeper 는 Apacahe Hadoop 의 하위 프로젝트 로 트 리 형태의 디 렉 터 리 서비스 로 푸 시 변경 을 지원 하 며 Dubbo 서비스의 등록 센터 로 적합 하 며 산업 강도 가 높 아 생산 환경...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.