好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > JAVA中正則表達式小總結(整理)

JAVA中正則表達式小總結(整理)

熱門標簽:浙江營銷外呼系統有哪些 地圖標注店鋪地圖標注酒店 自己做的電銷機器人 山東外呼系統聯系方式 哈爾濱公司外呼系統代理 淄博市張店區地圖標注 惠安地圖標注 上海銷售電銷機器人軟件 遼寧秒客來電話機器人

]js正則表達式基本語法(精粹):  https://www.jb51.net/article/72044.htm 

     許多語言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正則表達式處理文本,一些文本編輯器用正則表達式實現高級“搜索-替換”功能。所以JAVA語言也不例外。正則表達式已經超出了某種語言或某個系統的局限,成為被人們廣為使用的工具,我們完全可以用它來解決實際開發中碰到的一些實際的問題。

       在JDK1.3及之前的JDK版本中并沒有包含正則表達式的類,如果要在Java中使用正則表達式必須使用第三方提供的正則表達式庫,最有名的就是Jakarta-ORO,Jakarta-ORO庫以前叫做OROMatcher,是Daniel Savarese贈送給Jakarta Project的一個開源包。使用的時候首先要創建一個實現了PatternCompiler接口的實例變量以創建一個“模式編譯器”,Jakarta-ORO中實現了這個接口的類就是Perl5Compiler,這個類做到了與Perl5的正則表達式完全兼容。Jakarta-ORO的使用是非常簡便的,而且效率非常高,支持的正則表達式語法也是非常全的,唯一的缺點就是它不是JDK中的標準包。從JDK1.4開始提供了支持正則表達式API,它們位于java.util.regex包中,由于已經有了標準API,所以本書將會用java.util.regex進行正則表達式的相關操作。

一、正則表達式基礎知識

1.1 句點符號

       假設你在玩英文拼字游戲,想要找出三個字母的單詞,而且這些單詞必須以“t”字母開頭,以“n”字母結束。另外,假設有一本英文字典,你可以用正則表達式搜索它的全部內容。要構造出這個正則表達式,你可以使用一個通配符——句點符號“.”。這樣,完整的表達式就是“t.n”,它匹配“tan”、“ten”、“tin”和“ton”,還匹配“t#n”、“tpn”甚至“t n”,還有其他許多無意義的組合。這是因為句點符號匹配所有字符,包括空格、Tab字符甚至換行符:

 1.2 方括號符號

為了解決句點符號匹配范圍過于廣泛這一問題,你可以在方括號(“[]”)里面指定看來有意義的字符。此時,只有方括號里面指定的字符才參與匹配。也就是說,正則表達式“t[aeio]n”只匹配“tan”、“Ten”、“tin”和“ton”。但“Toon”不匹配,因為在方括號之內你只能匹配單

個字符:

1.3 “或”符號

      如果除了上面匹配的所有單詞之外,你還想要匹配“toon”,那么,你可以使用“|”操作符。“|”操作符的基本意義就是“或”運算。要匹配“toon”,使用“t(a|e|i|o|oo)n”正則表達式。這里不能使用方擴號,因為方括號只允許匹配單個字符;這里必須使用圓括號“()”。圓括號還可以用來分組。

1.4 表示匹配次數的符號

下表顯示了正則表達式的語法:

表 1.1 正則表達式語法

    假設我們要在文本文件中搜索美國的社會安全號碼。這個號碼的格式是999-99-9999。用來匹配它的正則表達式如圖一所示。在正則表達式中,連字符(“-”)有著特殊的意義,它表示一個范圍,比如從0到9。因此,匹配社會安全號碼中的連字符號時,它的前面要加上一個轉義字符“/”。

      假設進行搜索的時候,你希望連字符號可以出現,也可以不出現——即,999-99-9999和999999999都屬于正確的格式。這時,你可以在連字符號后面加上“?”數量限定符號。

      美國汽車牌照的一種格式是四個數字加上二個字母。它的正則表達式前面是數字部分“[0-9]{4}”,再加上字母部分“[A-Z]{2}”。

1.5 “否”符號

      “^”符號稱為“否”符號。如果用在方括號內,“^”表示不想要匹配的字符。例如,圖四的正則表達式匹配所有單詞,但以“X”字母開頭的單詞除外。

1.6 圓括號和空白符號

     “/s”符號是空白符號,匹配所有的空白字符,包括Tab字符。如果字符串正確匹配,接下來如何提取出月份部分呢?只需在月份周圍加上一個圓括號創建一個組,然后用ORO API提取出它的值。

1.7 其它符號

     為簡便起見,你可以使用一些為常見正則表達式創建的快捷符號。如以下所示:

/t:制表符,等同于/u0009
/n:換行符,等同于/u000A
/d:代表一個數字,等同于[0-9]
/D:代表非數字,等同于[^0-9]
/s:代表換行符、Tab制表符等空白字符
/S:代表非空白字符
/w:字母字符,等同于[a-zA-Z_0-9]
/W:非字母字符,等同于[^/w]

例如,在前面社會安全號碼的例子中,所有出現“[0-9]”的地方我們都可以使用“/d”。

以下是我整理出來的程序:供參考:

package org.luosijin.test; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 
/** 
 * 正則表達式 
 * @version V. 
 * @author 羅嗣金 
 * @date -- 
 */ 
public class Regex { 
 /** 
 * @param args 
 * @author 羅嗣金 
 * @date -- 下午:: 
 */ 
 public static void main(String[] args) { 
 Pattern pattern = Pattern.compile("b*g"); 
 Matcher matcher = pattern.matcher("bbg"); 
 System.out.println(matcher.matches()); 
 System.out.println(pattern.matches("b*g","bbg")); 
 //驗證郵政編碼 
 System.out.println(pattern.matches("{}", "")); 
 System.out.println(pattern.matches("http://d{}", "")); 
 //驗證電話號碼 
 System.out.println(pattern.matches("{,}//-?+", "")); 
 getDate("Nov ,"); 
 charReplace(); 
 //驗證身份證:判斷一個字符串是不是身份證號碼,即是否是或位數字。 
 System.out.println(pattern.matches("^//d{}|//d{}$", "")); 
 getString("D:/dir/test.txt"); 
 getChinese("welcome to china,江西奉新,welcome,你!"); 
 validateEmail("luosijin@.com"); 
 } 
 /** 
 * 日期提取:提取出月份來 
 * @param str 
 * @author 羅嗣金 
 * @date -- 下午:: 
 */ 
 public static void getDate(String str){ 
 String regEx="([a-zA-Z]+)|//s+{,},//s*{}"; 
 Pattern pattern = Pattern.compile(regEx); 
 Matcher matcher = pattern.matcher(str); 
 if(!matcher.find()){ 
  System.out.println("日期格式錯誤!"); 
  return; 
 } 
 System.out.println(matcher.group()); //分組的索引值是從開始的,所以取第一個分組的方法是m.group()而不是m.group()。 
 } 
 /** 
 * 字符替換:本實例為將一個字符串中所有包含一個或多個連續的“a”的地方都替換成“A”。 
 * 
 * @author 羅嗣金 
 * @date -- 上午:: 
 */ 
 public static void charReplace(){ 
 String regex = "a+"; 
 Pattern pattern = Pattern.compile(regex); 
 Matcher matcher = pattern.matcher("okaaaa LetmeAseeaaa aa booa"); 
 String s = matcher.replaceAll("A"); 
 System.out.println(s); 
 } 
 /** 
 * 字符串提取 
 * @param str 
 * @author 羅嗣金 
 * @date -- 上午:: 
 */ 
 public static void getString(String str){ 
 String regex = ".+/(.+)$"; 
 Pattern pattern = Pattern.compile(regex); 
 Matcher matcher = pattern.matcher(str); 
 if(!matcher.find()){ 
  System.out.println("文件路徑格式不正確!"); 
  return; 
 } 
 System.out.println(matcher.group()); 
 } 
 /** 
 * 中文提取 
 * @param str 
 * @author 羅嗣金 
 * @date -- 上午:: 
 */ 
 public static void getChinese(String str){ 
 String regex = "[//uE-//uFFF]+";//[//uE-//uFFF]為漢字 
 Pattern pattern = Pattern.compile(regex); 
 Matcher matcher = pattern.matcher(str); 
 StringBuffer sb = new StringBuffer(); 
 while(matcher.find()){ 
  sb.append(matcher.group()); 
 } 
 System.out.println(sb); 
 } 
 /** 
 * 驗證Email 
 * @param email 
 * @author 羅嗣金 
 * @date -- 上午:: 
 */ 
 public static void validateEmail(String email){ 
 String regex = "[-a-zA-Z]+@[-a-zA-Z]+//.[-a-zA-Z]+"; 
 Pattern pattern = Pattern.compile(regex); 
 Matcher matcher = pattern.matcher(email); 
 if(matcher.matches()){ 
  System.out.println("這是合法的Email"); 
 }else{ 
  System.out.println("這是非法的Email"); 
 } 
 } 
}

您可能感興趣的文章:
  • Java正則表達式實現經緯度的合法性操作

標簽:泰州 長沙 宣城 重慶 西安 無錫 綿陽 銅川

巨人網絡通訊聲明:本文標題《JAVA中正則表達式小總結(整理)》,本文關鍵詞  JAVA,中,正則,表達式,小,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《JAVA中正則表達式小總結(整理)》相關的同類信息!
  • 本頁收集關于JAVA中正則表達式小總結(整理)的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 国产精品国产三级国产普通话对白 | 国产成人夜间影院在线观看| 高中生第一次破女处流血视频| 久久久久久精品国产三级秦老师| 精品欧美AV无码喷奶水小说| 一区二区三区精品视频| 在线免费污视频| 美女光屁股免费直播| 舌头伸进去?的我的B看看| 香港三级之丈夫瘫痪的电影| 免费性生活大片| 欧美高清强视频| 91人妻PORNY绿帽论坛| 国产老头老太一级A片| 一区二区三区欧美日韩国产| 可以免费观看一级毛片黄a| 男人鸡鸡捅女人鸡鸡| 午夜伦情电午夜伦情电影在线观看| 岳妇伦丰满日本在线播放| 初哥·初女·初夜情| 日本无码久久嗯啊流水| 天天se天天cao综合网蜜芽| 欧美欲妇激情视频在线| 亚洲欧美AV无码国产美韩系| 又大又长又粗又硬的视频| zozozo性欧美人禽交| 国产精品白嫩白嫩大学美女| 成人免费观看A片毛片衣人| 欧洲少妇特黄毛片AAAA片| 韩日精品| 美女胸大吸乳照片| 91久久偷窥撒尿一区二区| 嗯~啊~轻一点????茄子视频| 别揉我胸啊嗯上课呢小| 国产精品亚洲AV无人区| 第一次做爰高潮全过程| 欧美人与禽猛交狂配免费| 国产精品福利电影| 欧美色片在线观看| 日韩福利片午夜在线观看资源| 国产精品久久久久精品一区二区|