正規表示式以及字串String類

2021-07-02 17:51:53 字數 4648 閱讀 7842

所謂的正規表示式就是符合一定規則的表示式

作用   :  用於專門操作字串的

特點   :  用一些特點的符合來表示一些**操作   這樣奇偶簡化書寫

所以學習正規表示式奇偶是在學習一些 特殊符號的使用

好處   :  可以簡化對字串的複雜操作

常用的規則有

預定義字元類 

. 任何字元(與行結束符可能匹配也可能不匹配) 

\d 數字:[0-9] 

\d 非數字: [^0-9] 

\s 空白字元:[ \t\n\x0b\f\r] 

\s 非空白字元:[^\s] 

\w 單詞字元:[a-za-z_0-9] 

\w 非單詞字元:[^\w] 

字元類 

[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](減去) 

greedy 數量詞 

x? x,一次或一次也沒有 

x* x,零次或多次 

x+ x,一次或多次 

x x,恰好 n 次 

x x,至少 n 次 

x x,至少 n 次,但是不超過 m 次 

邊界匹配器 

^ 行的開頭 

$ 行的結尾 

\b 單詞邊界 

\b 非單詞邊界 

\a 輸入的開頭 

\g 上乙個匹配的結尾 

\z 輸入的結尾,僅用於最後的結束符(如果有的話) 

\z 輸入的結尾 

組和捕獲 

捕獲組可以通過從左到右計算其開括號來編號。例如,在表示式 ((a)(b(c))) 中,存在四個這樣的組: 

1     ((a)(b(c))) 

2     \a 

3     (b(c)) 

4     (c) 

演示區域性功能:

1 匹配  string類中的 maches()方法

用於規則匹配整個字串  只要有一次不符合規則 那麼就匹配結束  返回false

public static void ss()

";/*這是乙個規則每乙個中括號只能規則乙個字元 第乙個中括號只能規則的意思是 

只能規則小寫a-z之間的字元  第二個中括號只能是abc  第三個中括號除了小寫abc其他字元都可以  

第四個中括號的意思是只能是小寫或者大寫a-z a-z  第5個中括號巢狀這中括號  第六個\\s是空白字元

第七個\\d的意思是  只能是數字  只能有3位

這個巢狀的中括號的規則是  只能是小寫a到c之間 或者 是w-z之間

如果都滿足就就為真 否則為假*/

boolean zj=s.matches(guizhe);

system.out.println(zj);}

2 切割  string類中的split ()方法

public static void ss()}

3 替換 string中的replaceall()方法

public static void ss1()

4 獲取  將字串中的符合規則的子串取出

操作步驟:

1 將正規表示式封裝成物件

2 讓正規表示式和要操作的字串相關聯

3 關聯後 獲取正規表示式引擎

4 通過引擎對符合規則的子串進行操作  比如取出

public static void ss3()

\\b";//規則

pattern p=pattern.compile(guizhe);//把規則封裝成物件

matcher m=p.matcher(s);          //獲取引擎

while (m.find())//判斷下乙個有沒有   類似於迭代器中的hasnext}

string  類:

字串是乙個特殊的物件 

在現實中很常見  比如發帖  qq聊天

字串一旦初始化就不可以被改變

string str="abc"str是乙個類型別變數   「abc」是乙個物件 

string str1=new string("abc");這種跟上面那種方式是一樣的

不同的是 位址不一樣 值一樣  值一樣的原因是因為 string複寫了object類中的equals 方法

str有乙個物件  str1有兩個物件  new 是乙個物件 「abc」又是乙個物件所以有兩個物件

建立了自己特有的方法  這個方法是比較值是否一樣  而 object中的equals 是比較位址

string常用的方法有:

1 獲取

返回int  indexof(string a)找字串中第一次出現的位置,如果沒有返回-1

int  indexof(int ch)找字元中出現的位置,如果沒有返回-1

int  indexof (int ch,int a)從指定位置開始找 ,如果沒有返回-1

int  lastindexof(int ch) 反向找

int  lastindexof(int ch,int a)從指定位置反向找

char charat(int a)返會指定字元某個位置的字元 當訪問到字串不存在的角標時就會發生角標越界異常

2 判斷 

boolean startswith(string a)判斷字串是否以指定的內容開頭

boolean endswith(string a)判斷字串是否以指定的內容結束

boolean isempty()判斷字串是否為空

boolean contains(char)判斷字串是否包含某個字元

boolean equals(string a)判斷字串內容是否相同

boolean equalsignorecase(string a)判斷字串內容是否相同 並且忽略大小寫

3轉換1 將字元陣列轉成字串

建構函式 string(char)

string (chat,offset,count)將字元陣列中的一部分轉成字串

靜態方法 static string copyvalueof(chat data)

static string copyvalueof (chat data,int a,int b)將字元陣列中的一部分轉成字串

2 將位元組陣列轉成字串

string(byte)

string (byte,offset,count)將位元組陣列中的一部分轉成字串

3 將字串轉換成字元陣列

chat tochararray() 

4 將字串轉換成位元組陣列

byte getbytes()

5 將基本資料型別轉成字串

static string valueof(int)

static string valueof(double)

6 對字串轉成大寫或者小寫

string touppercase()

string tolowercase()

7 對字串兩端的多個空格去除

string trim()

8 對兩個字串進行自然順序的比較 比的是ikc碼

int compareto(string);

4 替換

string replace(oldchar,newchar)

5 切割

string split(regex) regex 拿什麼作為切割符  

6 子串 獲取字串中的一部分

string substring(int begin)

string substring (int begin,int end)

**演示:

class wanwan

public static void bb()查詢

public static void cc()//2 判斷

public static void dd()//轉換

;string b=new string(a,2,4);//建構函式// 將字元陣列轉換成字串 2是起始位4是個數

sos(b);

string d=string.copyvalueof(a,1,3);//靜態方法//將字元陣列轉換成字串 2是起始位4是個數

sos(d);

string f="aaaaaaaaaa";

char dd=f.tochararray();//字串轉換成字元陣列

for(int aa=0;aa

byte ddd=f.getbytes();

for(int aa=0;aa

}public static void ee()//轉換

public static void ff()//替換

public static void gg()

}public static void hh()//獲取

public static void main(string args) //boos

public static void sos(object a)//列印封裝成了函式}

正規表示式匹配字串

正規表示式用於字串處理 表單驗證等場合,實用高效。現將一些常用的表示式收集於此,以備不時之需。匹配中文字元的正規表示式 u4e00 u9fa5 評注 匹配中文還真是個頭疼的事,有了這個表示式就好辦了 匹配雙位元組字元 包括漢字在內 x00 xff 評注 可以用來計算字串的長度 乙個雙位元組字元長度計...

正規表示式匹配 字串

正規表示式匹配字串 假使,有幾個需要驗證的字串用 連線在一起 形如 farmer1,1farmer234 想用正規表示式來匹配每乙個字串。private static string sourcestr farmer1,1farmer234 private static string key farm...

字串教程 正規表示式

正規表示式適合很多種語言不單單是c 匹配除換行符以外的任意字元 w 匹配字母,數字,下劃線,漢字 w 小w的補集 就是和小w相反的 s 匹配 任意空白符 包括換行符 n,回車符 r,製表符 t,垂直製表符 v,換頁符 f d 匹配數字 0 9數字 abc 匹配括號中的字元 a c a字元到c字元 x...