日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java nextintln_Java对正则表达式的支持(二)

發布時間:2025/3/12 java 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java nextintln_Java对正则表达式的支持(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

正則表達式的主要用途:

a.在目標字符串中找出匹配正則表達式的部分

b.校驗目標字符串是否符合正則表達式,例如校驗郵箱地址

c.在目標字符串中替換符合正則表達式的部分為其他的字符串

Scanner類是JDK 1.5中引入的掃描類,Scanner類的構造函數可以接受一個Readable對象,具體說來可以是File、String、InputStream等。

下面是一個Scanner類配合正則表達式使用的例子,目的是找出以S、s、c、t開頭的單詞。

packageRegexTest;importjava.io.File;importjava.io.FileNotFoundException;importjava.util.Scanner;importjava.util.regex.Matcher;importjava.util.regex.Pattern;public classScannerTest {public static void main(String [ ] args) throwsFileNotFoundException {

Pattern pa= Pattern.compile("\\b[Ssct]\\w+");

Matcher ma= pa.matcher("");

Scanner sc= new Scanner(new File("src/RegexTest/ScannerTest.java"));while(sc.hasNextLine()){

ma.reset(sc.nextLine());while(ma.find()){

System.out.println(ma.group());

}

}

}

}

輸出結果為:

ScannerclassScannerTeststaticStringthrowscompile

Ssct

Scanner

sc

Scanner

src

ScannerTest

sc

sc

System

正則表達式"\\b[Ssct]\\w+"的含義如下,\b表示單詞的邊界,使用正則表達式操作單詞時需要使用\b。w代表的是0-9或者a-z或者A-Z。

sc.hasNextLine()可以判斷Scanner是否能取到下一行,sc.nextLine()是取下一行的字符串。

Scanner還有hasNextInt()、hasNextLong()、hasNextBigInteger()等方法用于取出下一個基本類型。

Scanner默認地是根據空格來分割輸入的字符串,也可以自定義分割符,如下面所示。

importjava.util.Scanner;public classScannerTest2 {public static voidmain(String [ ] args) {

String str= "12,42 , 78 ,99, 42";

Scanner sc= newScanner(str);

sc.useDelimiter("\\s*,\\s*");while(sc.hasNextInt()){

System.out.println(sc.nextInt());

}

}

}

輸出結果為:

12

42

78

99

42

sc.useDelimiter("\\s*,\\s*");中的\s代表空白符(空格,回車,換行等),*代表一個或多個,合起來就是“,”前后帶任意個空白符。

Scanner除了可以配合Pattern和Matcher使用外,其本身也是支持正則表達式的,如下面的例子。

packageRegexTest;importjava.util.Scanner;importjava.util.regex.MatchResult;importjava.util.regex.Matcher;importjava.util.regex.Pattern;public classScannerTest3 {public static voidmain(String [ ] args) {

String str= "58.77.82.161@02/10/2012\n" +

"204.17.82.31@02/11/2012\n" +

"58.77.32.53@02/12/2012\n" +

"28.45.32.161@02/12/2012\n";

Scanner sc= newScanner(str);

String pattern= "(\\d+\\.\\d+\\.\\d+\\.\\d+)@"+

"(\\d{2}/\\d{2}/\\d{4})";while(sc.hasNext(pattern)){

sc.next(pattern);

MatchResult mr=sc.match();

String ip= mr.group(1);

String date= mr.group(2);

System.out.format("Threat on %s from %s\n",date,ip);

}

Pattern pa= Pattern.compile("(\\d+\\.\\d+\\.\\d+\\.\\d+)@"+

"(\\d{2}/\\d{2}/\\d{4})",Pattern.CASE_INSENSITIVE |Pattern.MULTILINE);

Matcher matcher=pa.matcher(str);while(matcher.find()){

String ip= matcher.group(1);

String date= matcher.group(2);

System.out.format("Threat on %s from %s\n",date,ip);

}

}

}

輸出結果為:

Threat on 02/10/2012 from 58.77.82.161Threat on02/11/2012 from 204.17.82.31Threat on02/12/2012 from 58.77.32.53Threat on02/12/2012 from 28.45.32.161Threat on02/10/2012 from 58.77.82.161Threat on02/11/2012 from 204.17.82.31Threat on02/12/2012 from 58.77.32.53Threat on02/12/2012 from 28.45.32.161

下面是一個將IP地址進行排序的例子,如下:

packageregExp;importjava.util.Arrays;public classSortIPAddressWithRegExp {public static voidmain(String[] args) {

String ip= "102.49.25.254 102.49.23.13 10.10.10.10 2.2.2.2 8.109.90.30";//先對IP每一位都添加兩個0

String regex = "(\\d+)";

ip= ip.replaceAll(regex,"00$1");

System.out.println(ip);//再將IP地址只保留三位

regex = "0*(\\d{3})";

ip= ip.replaceAll(regex,"$1");

System.out.println(ip);//下面進行切割

String[] result = ip.split(" +");

System.out.println(Arrays.asList(result));

Arrays.sort(result);

System.out.println("after");for(int i =0;i

result[i]=result[i].replaceAll("0*(\\d+)","$1"); //將前面的0 去掉

for(String s : result)

System.out.println(s);

}

}

使用正則表達式判斷文件中是否含有中文字符的例子為:

importjava.io.File;importjava.io.FileNotFoundException;importjava.util.Scanner;importjava.util.regex.Pattern;public classCheckChineseCharacter {public static void main(String[] args) throwsFileNotFoundException {

Scanner sc= new Scanner(new File("UCS_PM_1.1.5_EN.sql"));

String str= "";int index = 1;while(sc.hasNextLine()){

str=sc.nextLine();if(isChinese(str)){

System.out.println(str+ "contain Chinese Character");

}else{

System.out.println("no Chinese Character in cloum " +index);

}

index++;

}

}//根據Unicode編碼判斷中文漢字和符號

private static boolean isChinese(charc) {

Character.UnicodeBlock ub=Character.UnicodeBlock.of(c);if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub ==Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A || ub ==Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub ==Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS|| ub ==Character.UnicodeBlock.GENERAL_PUNCTUATION) {return true;

}return false;

}//完整的判斷中文漢字和符號

public static booleanisChinese(String strName) {char[] ch =strName.toCharArray();for (int i = 0; i < ch.length; i++) {char c =ch[i];if(isChinese(c)) {return true;

}

}return false;

}//只能判斷部分CJK字符(CJK統一漢字)

public static booleanisChineseByREG(String str) {if (str == null) {return false;

}

Pattern pattern= Pattern.compile("[\\u4E00-\\u9FBF]+");returnpattern.matcher(str.trim()).find();

}//只能判斷部分CJK字符(CJK統一漢字)

public static booleanisChineseByName(String str) {if (str == null) {return false;

}//大小寫不同:\\p 表示包含,\\P 表示不包含//\\p{Cn} 的意思為 Unicode 中未被定義字符的編碼,\\P{Cn} 就表示 Unicode中已經被定義字符的編碼

String reg = "\\p{InCJK Unified Ideographs}&&\\P{Cn}";

Pattern pattern=Pattern.compile(reg);returnpattern.matcher(str.trim()).find();

}

}

總結

以上是生活随笔為你收集整理的java nextintln_Java对正则表达式的支持(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 九九久久九九久久 | 日本视频在线免费 | 无码国产69精品久久久久同性 | 色操插 | 中文字幕av免费在线观看 | 久久国产精品一区 | 六月丁香激情 | av在线视 | 在线观看免费高清 | 亚洲自啪 | 中文字幕日韩精品亚洲一区小树林 | 91超碰国产在线 | 91免费网站入口 | 黄色一级片一级片 | 久久精品国产亚洲AV无码麻豆 | 亚洲欧美日韩精品 | 日本黄在线观看 | 奇米影视一区二区 | www日本在线观看 | 欧美日韩国产一区二区三区在线观看 | 国产一级二级三级在线观看 | 性福网站| 女性裸体瑜伽无遮挡 | 成人在线观看亚洲 | 欧美一区二区成人 | 嫩草国产精品 | 欧美草b | 麻豆视频在线观看 | 国产精品黄色 | 精品亚洲永久免费精品 | 久久久久99人妻一区二区三区 | 在线观看www视频 | 色乱码一区二区三区 | av女人的天堂 | 亚洲国产成人精品激情在线 | 放荡的美妇在线播放 | 成人福利免费视频 | 日韩在线1| 久久人人妻人人人人妻性色av | 99er视频| 国内激情视频 | 少妇高潮一区二区三区喷水 | www.天天操 | 日本人和亚洲人zjzjhd | 中文字幕三级电影 | 精品成人 | 公车乳尖揉捏酥软呻吟 | 久久精品美乳 | 99在线观看视频 | eeuss鲁片一区二区三区在线观看 | 制服丝袜一区二区三区 | 国产高清一| 美女av网址| 国产成人短视频在线观看 | 国产三级播放 | 黄视频免费在线观看 | 国产成人精品av在线观 | 婷婷亚洲综合 | 最近中文字幕第一页 | 国产在线第一页 | 美女av免费在线观看 | 国产精品成人一区二区三区电影毛片 | 国产在线一区二区三区 | 秋霞7777鲁丝伊人久久影院 | 1024精品一区二区三区日韩 | 色妻av | 欧美一区二区成人 | 国产又黄视频 | 黄视频在线免费 | 亚洲男人天堂av | 久久国产精品久久久 | 国产极品999| 久热99| 石原莉奈在线播放 | 天使色吧| 亚洲视频中文 | avav我爱av| eeuss鲁片一区二区三区在线观看 | 国产青草视频在线观看 | 日本日韩欧美 | 欧美日韩亚洲一区二区 | 国产肉体ⅹxxx137大胆 | 欧美一区二区三区四区五区六区 | 国产成人黄色av | 二区三区在线观看 | 曰本三级日本三级日本三级 | 一本久久久久 | 久久大陆 | 骚虎av在线 | 午夜老司机免费视频 | 久草精品国产 | 北条麻妃一区二区三区 | 国产剧情一区二区三区 | 日本va欧美va精品发布 | 亚洲涩网 | 色综网| 久久精品一区二 | 激情综合五月天 | 国产成人中文字幕 |