11 正規表示式

2021-07-09 20:10:34 字數 2139 閱讀 7580

注意:任何預定義字元沒有加上數量詞之前只能匹配乙個字元。

"12".matches("\\d\\d");//這裡匹配了兩個

注意:這裡只匹配乙個

匹配(matches)

匹配qq號

string qq = "123456";

string reg = "[1-9][0-9]";

boolean b = qq.matches(req);

匹配手機號碼

string reg = "1[35]\\d";
匹配郵箱

string reg = "[a-za-z1-9]\\w@[a-za-z0-9](\\.(com|cn|net))"
切割(split)切割空格

str = "-1    99   4    23";

string arr = str.split(" +");

根據重疊詞切割(正規表示式內容復用:分組)

\1:代表第一組內容,組號是從1開始

string str = "大家家家家家好好好啊";

替換(replaceall)

string reg = "1[34578]\\d"

str.replaceall(reg, "*****");

正則的外部引用分組內容,使用$符號

string str = "大大大家家家好好好";

str.replaceall("(.)\\1", "$1");

查詢使用的物件:1. pattern 物件 2. matcher物件指定字串的正規表示式必須首先被編譯為此類的例項。然後,可將得到的正則物件匹配任意的字串用於建立matcher物件,執行匹配所涉及的所有狀態都駐留在匹配器中,所以多個匹配器可以共享同一模式。典型的呼叫順序:

pattern p = pattern.compile("正則");

matcher m = p.matcher("aaaaab");

boolean b = m.matches();

匹配器常用的方法

find()//如果能查到符合規則的字串,則返回true,否則返回false

group()//獲取符合規則的子串

注意:使用group方法的時候一定要先呼叫find方法匹配器去查詢符合規則的字串,否則報錯

//找出三個字母的

string content = "da jia hao a "

;string reg = "\\b[a-za-z]\\b"

;pattern p = pattern.compile(reg);

matcher m = p.matcher(content);

m.find();

m.group();

上面用到了單詞邊界匹配器:\b 單詞邊界匹配器只是代表了單詞的開始和結束部分,不匹配任何的字元

「hello world」.matches(「hello\b world」); //true

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

C 11正規表示式

優勢 使得字串的處理更加簡單 一些相關的操作 驗證 檢查字串是否是想要的合法性 決策 判斷乙個輸入標書哪種字串 解析 從輸入的字串中查詢自己想要的資訊 轉換 搜尋字串,並將字串替換為新的格式化的字串 遍歷 搜尋字串所有出現的地方 符號化 根據一組分隔符將乙個字串分解為多個子字串 一些重要術語 模式 ...

c 11 正規表示式

include include 正規表示式標頭檔案 using namespace std regex search 檢索 regex replace 將檢索到的物件進行替換替換 match 是否匹配 void main cout 正規表示式實現字串的替換 void main 匹配時間 void m...