摘要:第三階段常見對象的學習正則表達式一正則表達式概述簡單概述就是符合一定規則的字符串常見規則字符字符。舉例表示字符反斜線字符。
第三階段 JAVA常見對象的學習 正則表達式 (一) 正則表達式概述 (1) 簡單概述
就是符合一定規則的字符串、
(2) 常見規則A:字符 x 字符 x。舉例:"a"表示字符a 反斜線字符。 新行(換行)符 ("u000A") 回車符 ("u000D") B:字符類 [abc] a、b 或 c(簡單類) [^abc] 任何字符,除了 a、b 或 c(否定) [a-zA-Z] a到z 或 A到Z,兩頭的字母包括在內(范圍) [0-9] 0到9的字符都包括 C:預定義字符類 . 任何字符。我的就是.字符本身,怎么表示呢 . d 數字:[0-9] w 單詞字符:[a-zA-Z_0-9] 在正則表達式里面組成單詞的東西必須有這些東西組成 D:邊界匹配器 ^ 行的開頭 $ 行的結尾 單詞邊界 就是不是單詞字符的地方。 舉例:hello world?haha;xixi E:Greedy 數量詞 X? X,一次或一次也沒有 X* X,零次或多次 X+ X,一次或多次 X{n} X,恰好 n 次 X{n,} X,至少 n 次 X{n,m} X,至少 n 次,但是不超過 m 次(3) 常見功能
//判斷功能 String類的public boolean matches(String regex) //分割功能 String類的public String[] split(String regex) //替換功能 String類的public String replaceAll(String regex,String replacement) //獲取功能 Pattern和Matcher Pattern p = Pattern.compile("a*b"); Matcher m = p.matcher("aaaaab"); find():查找存不存在 group():獲取剛才查找過的數據
正則表達式是非常強大的,我們通過幾個簡單的例子來看一下正則表達式的應用
(二) 正則表達式的應用 (1) 判斷功能以及正則表達式——驗證郵箱格式案例import java.util.Scanner; public class RegexDemo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("請輸入你的郵箱"); String email = sc.nextLine(); //定義郵箱規則 //"[a-zA-Z_0-9]+@[a-zA-Z_0-9]{2,6}(.[a-zA-Z_0-9]{2,3})+" //簡化后 String regex = "w+@w{2,6}(.w{2,3}+)"; boolean flag = email.matches(regex); System.out.println(flag); } }(2) 拆分功能——好友年齡范圍限制
import java.util.Scanner; /* * 分割功能 * String類的 public String[] split(String regex) * 根據正則表達式的匹配拆分此字符串 * 舉例: * 社交軟件中 * 搜索好友: * 性別:女 * 年齡:18-24 */ public class RegexDemo { public static void main(String[] args) { String ages = "18-24"; //定義規則 String regex = "-"; //調用方法 String[] strArray = ages.split(regex); //得到int類型 int StartAge = Integer.parseInt(strArray[0]); int EndAge = Integer.parseInt(strArray[1]); Scanner sc = new Scanner(System.in); System.out.println("請輸入你的年齡"); int age = sc.nextInt(); if (age >= StartAge && age <= EndAge){ System.out.println("確認過眼神,我遇上對的人!"); }else{ System.out.println("可惜不是你,陪我到最后!"); } } }(3) 把字符串中的數字排序
import java.util.Arrays; public class RegexDemo2 { public static void main(String[] args) { String s = "22 33 55 88 66 11"; String[] strArray = s.split(" "); //把字符串數字轉換成int數組 int[] arr = new int[strArray.length]; for (int x = 0; x < arr.length; x++) { arr[x] = Integer.parseInt(strArray[x]); } Arrays.sort(arr); //把排序后的int數組再組裝成一個字符串 StringBuilder sb = new StringBuilder(); for (int x = 0; x < arr.length; x++) { sb.append(arr[x]).append(" "); } String result = sb.toString().trim(); System.out.println("result: " + result); } } //運行結果 result: 11 22 33 55 66 88(4) 替換功能
package cn.bwh_03_RegexReplaceAll; public class RegexDemo { public static void main(String[] args) { String s1 = "hello123456world"; //所有數字用*給替換 String regex = "d"; String s2 = "*"; String result = s1.replaceAll(regex, s2); System.out.println(result); } } //運行結果 hello******world(5) 獲取字符串中由3個字符組成的單詞
import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexDemo { public static void main(String[] args) { String s = "hao hao xue xi tian tian xiang shang"; //規則 String regex = "w{3}"; //把規則編譯成模式對象 Pattern p = Pattern.compile(regex); //通過模式對象得到匹配器對象 Matcher m = p.matcher(s); while (m.find()){ System.out.println(m.group()); } } } //運行結果 hao hao xue結尾:
如果內容中有什么不足,或者錯誤的地方,歡迎大家給我留言提出意見, 蟹蟹大家 !^_^
如果能幫到你的話,那就來關注我吧?。ㄏ盗形恼戮鶗诠娞柕谝粫r間更新)
在這里的我們素不相識,卻都在為了自己的夢而努力 ?一個堅持推送原創Java技術的公眾號:理想二旬不止
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/74969.html
摘要:簡言在表單驗證中,經常會用正則表達式做出生日期校驗。聲明本文目的是為了闡述如何編寫一個正則表達式的過程。綜上所述,正則表達式是強大的,但并不是萬能的,因此不要過份地依賴和濫用正則。 簡言 在表單驗證中,經常會用正則表達式做出生日期校驗。本文把出生日期分割成幾個部分,分步地介紹了實現一個出生日期校驗的完整過程。相信您在理解了本篇的內容后,對如何編寫和如何應用正則表達式會有進一步的理解和體...
摘要:簡言在做用戶注冊時,常會用到郵箱郵件地址的正則表達式。另一個問題是郵件用戶名不能包括中文。以上為三胖對郵箱址正則表達式的理解和分析,如有不足請大家予以指正。郵件地址正則表達式度空間 簡言 在做用戶注冊時,常會用到郵箱/郵件地址的正則表達式。本文列舉了幾種方案,大家可以根據自己的項目情況,選擇最適合的方案。 showImg(https://segmentfault.com/img/rem...
摘要:語法如果相對域名或參數字符串起作用,可以使用全局變量匹配,也可以使用反向代理。不能返回限速,可以通過指令設置如果請求的文件名不存在,則反向代理到。 1. location正則寫法 一個示例: location = / { # 精確匹配 / ,主機名后面不能帶任何字符串 [ configuration A ] } location / { # 因為所有的地址都以 / 開...
摘要:如果你還沒正式開始正則表達式,請快速瀏覽跳過本章節。就是一個等同于但更簡略的正則表達式。如果想查找全部,就要加標識全局匹配規則正則表達式搜索字符串指定的值,從而去匹配字符串。正則表達式都是用來操作字符串的。 正則表達式 Create by jsliang on 2018-11-14 10:41:20 Recently revised in 2018-11-19 08:46:37 ...
摘要:語法如果相對域名或參數字符串起作用,可以使用全局變量匹配,也可以使用反向代理。不能返回限速,可以通過指令設置如果請求的文件名不存在,則反向代理到。 location正則寫法 一個示例: location = / { # 精確匹配 / ,主機名后面不能帶任何字符串 [ configuration A ] } location / { # 因為所有的地址都以 / 開...
閱讀 2733·2023-04-25 14:21
閱讀 1167·2021-11-23 09:51
閱讀 4001·2021-09-22 15:43
閱讀 606·2019-08-30 15:55
閱讀 1550·2019-08-29 11:28
閱讀 2439·2019-08-26 11:44
閱讀 1675·2019-08-23 18:15
閱讀 2875·2019-08-23 16:42