欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Java的正則表達(dá)式

 更新時(shí)間:2017年05月20日 13:00:37   作者:H.U.C-王子  
正則表達(dá)式,又稱正規(guī)表示法、常規(guī)表示法(英語(yǔ):Regular Expression,在代碼中常簡(jiǎn)寫為regex、regexp或RE),計(jì)算機(jī)科學(xué)的一個(gè)概念

正則表達(dá)式概念

 正則表達(dá)式,又稱正規(guī)表示法、常規(guī)表示法(英語(yǔ):Regular Expression,在代碼中常簡(jiǎn)寫為regex、regexp或RE),計(jì)算機(jī)科學(xué)的一個(gè)概念。正則表達(dá)式使用單個(gè)字符串來(lái)描述、匹配一系列符合某個(gè)句法規(guī)則的字符串。在很多文本編輯器里,正則表達(dá)式通常被用來(lái)檢索、替換那些符合某個(gè)模式的文本。正則表過(guò)式用于操作字符串?dāng)?shù)據(jù)。

String類里有一個(gè)方法

public boolean matches(String regex)告知此字符串是否匹配給定的正則表達(dá)式。

 參數(shù): regex - 用來(lái)匹配此字符串的正則表達(dá)式

 返回: 當(dāng)且僅當(dāng)此字符串匹配給定的正則表達(dá)式時(shí),返回 true

符號(hào)簡(jiǎn)介:

\\匹配反斜線字符
\r匹配回車符
\t匹配制表符
\f匹配換頁(yè)符
\n匹配換行符
[abc]匹配abc中的一個(gè)
[^abc]匹配除了abc中的一個(gè)
[a-z]匹配指定范圍內(nèi)的任意一個(gè)字符,例如,“[a-z]”可以匹配“a”到“z”范圍內(nèi)的任意小寫字母字符。
[A-Z]匹配指定范圍內(nèi)的任意一個(gè)字符,例如,“[A-Z]”可以匹配“A”到“Z”范圍內(nèi)的任意大寫字母字符。
[a-d[m-p]] 匹配[a-d m-p]并集 //abcd mnop中的一個(gè)
[a-z&&[^bc]]匹配[ad-z]范圍內(nèi)的任意字符//取a-z中的任意但不能取bc
 [a-z&&[^m-p]]匹配[a-l q-z]范圍內(nèi)的任意字符//取a-z中的任意但不能取mnop
 [a-z&&[def]]匹配def交集中的任意字符
. 匹配除“\r\n”之外的任何單個(gè)字符
\d 匹配一個(gè)數(shù)字字符。等價(jià)于[0-9]
 \D 匹配一個(gè)非數(shù)字字符。等價(jià)于[^0-9]
 \s 匹配任何不可見(jiàn)字符,包括空格、制表符、換頁(yè)符等等。等價(jià)于[\f\n\r\t\v]
 \S 匹配任何可見(jiàn)字符。等價(jià)于[^\f\n\r\t\v]
 \w 匹配單詞字符:等價(jià)于[a-zA-Z_0-9]
 \W 匹配任何非單詞字符。等價(jià)于[^A-Za-z0-9_]
 ^ 匹配輸入字符串的開(kāi)始位置
$ 匹配輸入字符串的結(jié)束位置
\b 匹配一個(gè)單詞邊界
\B 匹配非單詞邊界
? 匹配一次或一次沒(méi)有
* 匹配0次或多次
+ 匹配1次或多次
{n} 匹配恰好n次
{n,} 匹配至少n次
{n,m} 匹配至少n次,但不能超過(guò)m次匹配
\1 后向引用,表示表達(dá)式中,從左往右數(shù),第一個(gè)左括號(hào)對(duì)應(yīng)的括號(hào)內(nèi)的內(nèi)容。以此類推,\2表示第二個(gè),\0表示整個(gè)表達(dá)式

使用String類中的matches方法 例子:匹配手機(jī)號(hào)碼是否正確

public class RegDemo{ 
 public static void main(String[] args) { 
 String tel="13800001111"; 
 String reg="1[358]\\d{9}"; //1[358][0-9]{9} 
 boolean b=tel.matches(reg); 
 System.out.println(tel+":"+b); 
 }
 }

切割:使用String類中的split方法例子: 切割字符串

public class RegDemo{ 
 public static void main(String[] args) { 
 String str1="wang_yu_hang";
 String str2="zhao fei "; 
 String str3="tang.chun.lai";
 String [ ] strarr1=str1.split("_");
 String [ ] strarr2=str2.split(" +");
 String [ ] strarr3=str3.split("\\.");
 for(String str:strarr1){ 
 System.out.println(str);
 }
 }
 }

替換:使用String類中的replaceAll方法例子:替換字符串

public class RegDemo{
 public static void main(String[] args) { 
 String str="helloworld";
 str=str.replaceAll("o","xx");
 System.out.println(str);
 String ss = "tel12344556qq4564654add4646767"; 
 ss= ss.replaceAll("\\d{4,}", "#"); //4個(gè)或4個(gè)以上的數(shù)字連在一起的換成#
System.out.println(ss);
 }
 }

疊詞替換:想要替換重復(fù)出現(xiàn)的單詞,例如aa bbb cccc 任何的單詞都有可能重復(fù),所以使用 .(點(diǎn))匹配任意字符.然后使用() 括號(hào)將該單詞封裝到組中. 為了重復(fù)使用某些規(guī)則就將規(guī)則封裝為了組.使用()\1 1 是組號(hào),\1引用了組.就是組中是什么這個(gè)位置也是什么.取值時(shí),使用$1取第一個(gè)括號(hào)(組)中的值,以此類推。

獲?。?其實(shí)使用的是java.util.regex.Pattern 類; java.util.regex.Matcher 類

Matcher類中的常用方法 :

public boolean find() 嘗試查找與該模式匹配的輸入序列的下一個(gè)子序列。
public String group() 返回由以前匹配操作所匹配的輸入子序列。
public int start() 返回以前匹配的初始索引。
public int end() 返回最后匹配字符之后的偏移量。

例子:獲取字符串

public class RegDemo{
 public static void main(String[] args){
 Pattern p = Pattern.compile(“a*b”); //將正則表達(dá)式進(jìn)行對(duì)象封裝
Matcher m = p.matcher(“aaaaab”);//用正則表達(dá)式的方法matcher和字符串關(guān)聯(lián),獲取對(duì)字符串操作的匹配對(duì)象
Matcher boolean b = m.matches();//通過(guò)Mather匹配器對(duì)象的方法對(duì)字符串進(jìn)行操作
System.out.println(b); //匹配返回true,不匹配則返回false
 } 
 } 

相關(guān)文章

  • Spring Cloud入門系列服務(wù)提供者總結(jié)

    Spring Cloud入門系列服務(wù)提供者總結(jié)

    這篇文章主要介紹了Spring Cloud入門系列之服務(wù)提供者總結(jié),服務(wù)提供者使用Eureka Client組件創(chuàng)建 ,創(chuàng)建完成以后修改某文件,具體操作方法及實(shí)例代碼跟隨小編一起看看吧
    2021-06-06
  • IDEA創(chuàng)建springboot + mybatis項(xiàng)目全過(guò)程(步驟詳解)

    IDEA創(chuàng)建springboot + mybatis項(xiàng)目全過(guò)程(步驟詳解)

    這篇文章主要介紹了IDEA創(chuàng)建springboot + mybatis項(xiàng)目全過(guò)程及步驟詳解,本文通圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Java連接SQL?Server數(shù)據(jù)庫(kù)的超詳細(xì)教程

    Java連接SQL?Server數(shù)據(jù)庫(kù)的超詳細(xì)教程

    在Java應(yīng)用程序中我們經(jīng)常需要與數(shù)據(jù)庫(kù)進(jìn)行交互,一種常見(jiàn)的數(shù)據(jù)庫(kù)是Microsoft?SQL?Server,下面這篇文章主要給大家介紹了關(guān)于Java連接SQL?Server數(shù)據(jù)庫(kù)的超詳細(xì)教程,需要的朋友可以參考下
    2024-01-01
  • Java實(shí)現(xiàn)的簡(jiǎn)單網(wǎng)頁(yè)截屏功能示例

    Java實(shí)現(xiàn)的簡(jiǎn)單網(wǎng)頁(yè)截屏功能示例

    這篇文章主要介紹了Java實(shí)現(xiàn)的簡(jiǎn)單網(wǎng)頁(yè)截屏功能,涉及java網(wǎng)頁(yè)打開(kāi)及屏幕截圖功能相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12
  • Spring的組合注解和元注解原理與用法詳解

    Spring的組合注解和元注解原理與用法詳解

    這篇文章主要介紹了Spring的組合注解和元注解原理與用法,結(jié)合實(shí)例形式詳細(xì)分析了spring組合注解和元注解相關(guān)功能、原理、配置及使用方法,需要的朋友可以參考下
    2019-11-11
  • java 獲取數(shù)據(jù)庫(kù)連接的實(shí)現(xiàn)代碼

    java 獲取數(shù)據(jù)庫(kù)連接的實(shí)現(xiàn)代碼

    本篇文章是對(duì)在java中獲取數(shù)據(jù)庫(kù)連接的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • Spring注解@DependsOn解析

    Spring注解@DependsOn解析

    今天要分享得是Spring的@DependsOn注解,對(duì)于@DependsOn,我們從它的名稱里面就能看出意思是“依賴于”,那么在Spring中,它的作用就是解決Bean的創(chuàng)建依賴,感興趣的小伙伴快來(lái)閱讀吧
    2023-04-04
  • JFreeChart實(shí)現(xiàn)實(shí)時(shí)曲線圖

    JFreeChart實(shí)現(xiàn)實(shí)時(shí)曲線圖

    這篇文章主要為大家詳細(xì)介紹了JFreeChart實(shí)現(xiàn)實(shí)時(shí)曲線圖的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • java生成彩色附logo二維碼

    java生成彩色附logo二維碼

    這篇文章主要為大家介紹了java生成帶logo的多彩二維碼,比一般二維碼顏色鮮艷,美觀,如何生成二維碼,下面小編為大家分享實(shí)現(xiàn)代碼,感興趣的小伙伴們可以參考一下
    2016-04-04
  • Java的Flowable工作流之加簽轉(zhuǎn)簽詳解

    Java的Flowable工作流之加簽轉(zhuǎn)簽詳解

    這篇文章主要介紹了Java的Flowable工作流之加簽轉(zhuǎn)簽詳解,Flowable是一個(gè)開(kāi)源的工作流引擎,它提供了一套強(qiáng)大的工具和功能,用于設(shè)計(jì)、執(zhí)行和管理各種類型的工作流程,需要的朋友可以參考下
    2023-11-11

最新評(píng)論