java技術(shù)總結(jié)正則表達式_第1頁
java技術(shù)總結(jié)正則表達式_第2頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、技術(shù)總結(jié)正則表達式- HYPERLINK / t _blank android培訓(xùn)、 HYPERLINK / t _blank java培訓(xùn)、期待與您交流! -概述:正則表達式在程序設(shè)計語言中存在著廣泛的應(yīng)用,特別是用來處理字符串。如匹配字符串、查找字符串、替換字符串等。可以說,正則表達式是一段文本或一個公式,它是用來描述用某種模式去匹配一類字符串的公式,并且該公式具有一定的模式。-正則表達式代碼體現(xiàn):import java.util.regex.Matcher;import java.util.regex.Pattern;/* 正則表達式:主要用于針對處理字符串數(shù)據(jù)。* 好處:可以對字符串進

2、行復(fù)雜操作,并簡化代碼書寫。* 弊端:閱讀性較差。* 正則其實就是定義了符號代替了代碼。* 所以學(xué)習(xí)正則就必須要掌握一些符號。* 對字符串的常見操作都有哪些呢?* 1,匹配。* 使用的是String類中的matches方法。* 2,切割。* 使用的是String類中的split方法。* 3,替換。* 使用的是String類中的replaceAll方法。* 4,獲取。* 用到的是正則表達式對象。* 1,將正則表達式封裝成Pattern正則對象。* 2,通過正則對象獲取匹配器對象Matcher。* 3,通過匹配器將正則表達式作用到指定的字符串。* Pattern p = Ppile(a*b);*

3、Matcher m = p.matcher(aaaaab);* boolean b = m.matches();*/public class RegexDemo public static void main(String args) getDemo();/* 獲取演示。*/public static void getDemo() String str = zhu yi la,ming tian bu fang jia!;System.out.println(str);/ 獲取由三個字母組成單詞。String reg = ba-z3b;Pattern p = Ppile(reg);Matche

4、r m = p.matcher(str);while (m.find() System.out.println(m.start() + , + m.group() + , + m.end();/ 獲取匹配的子序列。/* 演示替換。*/public static void replaceDemo() String str = telover;str =/ str = str.replaceAll(d5, *);str = str.replaceAll(d3)d4(d4), $1*$2);System.out.println(str);/* 演示

5、切割。*/public static void splitDemo() String str = zhangsanaaaalisizzzwangwu;String reg = ,;/ 按照普通逗號切。reg = .;reg = +;reg = (.)1+;/ 準備期中的疊詞作為分隔符。String names = str.split(reg);for (String name : names) System.out.println(name);private static void regexDemo() /* 演示正則常見的符號。*/String str = aoooob;String re

6、g = ao3,b;/ 規(guī)則:對單詞為a開頭 b結(jié)尾,中間有一個o或者沒有o的單詞都匹配。boolean b = str.matches(reg);System.out.println(str + : + b);/ 校驗電話號public static void checkTel() String tel =String reg = 1358d9;boolean b = tel.matches(reg);System.out.println(tel + : + b);/ 校驗QQ號private static void checkQQByReg() String qq

7、 = 1012;/ 定義一個規(guī)則,對這個qq號進行匹配操作,符合規(guī)則就是正確的,否則是錯誤的。/ 規(guī)則怎么定義呢?通過一些已有的符號來完成。String reg = 1-90-94,14;boolean b = qq.matches(reg);System.out.println(qq + : + b);/ checkQQ(qq);/* 校驗QQ號進行校驗。 要求:515. 0不能開頭,必須是數(shù)字。*/public static void checkQQ(String qq) int len = qq.length();if (len = 5 & len = 15) if (!qq.start

8、sWith(0) try long l = Long.parseLong(qq);System.out.println(l + .哦了); catch (NumberFormatException e) System.out.println(qq + ,有非法字符。); else System.out.println(qq + ,不可以0開頭); else System.out.println(qq + ,長度錯誤。);-郵箱和IP的校驗:import java.util.TreeSet;public class RegexTest public static void main(String

9、 args) test_3();/* 對郵箱地址進行校驗。*/public static void test_3() String mail = abc12;mail = 11.1; String reg = a-zA-Z0-9_+a-zA-Z0-9+(.a-zA-Z2,)+; reg = w+w+(.w+)+; boolean b = mail.matches(reg); System.out.println(mail+:+b); /* * 練習(xí)二,ip地址排序。 * 4 9 */public static void test_2() String ip_str = 4 9 ; /* * 按

10、照字符串的字典順序排序, * 但是必須要先保證每一個ip段的位數(shù)是3位。補足用0補。 * */ ip_str = ip_str.replaceAll(d+), 00$1); System.out.println(ip_str); ip_str = ip_str.replaceAll(0*(d3), $1); System.out.println(ip_str); String ips = ip_str.split( +); TreeSet ts = new TreeSet();for(String ip : ips) ts.add(ip); for(String ip : ts) System

11、.out.println(ip.replaceAll(0*(d+), $1); /* * 練習(xí)一,治口吃 * 我我.我我.我叫叫叫.袁袁袁袁袁.夢夢夢夢.希希希希.希*/ public static void test_1() String str = 我我.我我.我叫叫叫.袁袁袁袁袁.夢夢夢夢.希希希希.希; /把它變成 我叫袁夢希。使用替換。 /1,把.去掉。 str = str.replaceAll(.+, ); /2,替換疊詞。為當前詞。 str = str.replaceAll(.)1+,$1); System.out.println(str); -網(wǎng)頁爬蟲:public class

12、 RegexTest2 public static void main(String args) throws Exception /* 網(wǎng)頁爬蟲:其實就一個可以獲取網(wǎng)頁中指定規(guī)則數(shù)據(jù)的小程序。 * * 比如抓取網(wǎng)頁中的郵箱。*/ getMails(); getMailsByWeb(); public static void getMailsByWeb() throws Exception String str_url = HYPERLINK :8080/myweb/mail.html t _blank :8080/myweb/mail.html; URL url = new URL(str_

13、url);/1,讀取指定文件。 BufferedReader bufr = new BufferedReader(new InputStreamReader(url.openStream();/2,定義規(guī)則。 String reg = w+w+(.w+)+; Pattern p = Ppile(reg);/3,開始讀。String line = null; while(line=bufr.readLine()!=null) Matcher m = p.matcher(line);while(m.find() System.out.println(m.group(); bufr.close(); public static void getMails() throws Exception /1,讀取指定文件。 BufferedReader bufr = new BufferedReader(new FileReader(c:mail.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論