jdk1.4推出java.util.regex包,為我們提供了很好的JAVA正則表達版式應用平台權。
Test.java
-------------------------------------------------------------------------------------------------------
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
//簡單認識正則表達式的概念
/*
p("abc".matches("..."));
p("a8729a".replaceAll("\\d", "-"));
Pattern p = Pattern.compile("[a-z]{3}");
Matcher m = p.matcher("fgh");
p(m.matches());
p("fgha".matches("[a-z]{3}"));
*/
⑵ java正則表達式怎麼書寫
正則表達式,又稱規則表達式。(英語:Regular Expression,在代碼中常簡寫為regex、regexp或RE),計算機科學的一個概念。正則表達式通常被用來檢索、替換那些符合某個模式(規則)的文本。
下面介紹具體的方法。
⑶ java正則表達式
1、Java 正則表達式:
正則表達式定義了字元串的模式。正則表達式可以用來搜索、編輯或處理文本。正則表達式並不僅限於某一種語言,但是在困桐每種語言中有細微的差別。
2、正則表達式實例
一個字元串其實就是一個簡單的正則表達式,例如 Hello World 正則表達式匹配 Hello World 字元串。.(點號)也是一個正則表達式,它匹配任何一個字元如:a 或 1。
3、java.util.regex 包主要包括以下三個類:
(1)Pattern 類:
pattern 對象是一個正則表達式的編譯表示。Pattern 類沒有公共構造方法。要創建一個 Pattern 對象,你必須首先調用其公共靜態編譯方法,它返回一個 Pattern 對象。該方法接受一個正則表達式作為它的第一個參數。
(2)Matcher 類頌汪:
Matcher 對象是對輸入字元串進行解釋和匹配操作的引擎。與Pattern 類一樣,Matcher 也沒有公野尺仔共構造方法。你需要調用 Pattern 對象的 matcher 方法來獲得一個 Matcher 對象。
(3)PatternSyntaxException:
PatternSyntaxException 是一個非強制異常類,它表示一個正則表達式模式中的語法錯誤。
⑷ java正則表達式
Java 正則表達式和 Perl 的是最為相似的,正則表達式就是規則表達式。
Java中正則表達式與之前使用的Python是有區別的,區別在於Java對於反斜線(\)處理的不同。 在Python中」\d」表示 匹配一位數字(0-9),而Java中匹配一位數字(0-9),需要的正則表達式為」\\d」。 不過換行符和製表符只需要單反斜線「\n\t」。
正則表達式定義了字元串的模式。可以用來搜索、編輯或處理文本。不僅限於某一種語言,但是在每種語言中有細微的差別。
⑸ java 正則表達式是什麼
匹配首尾空格的正則表達式:(^s*)|(s*$)。
匹配html標簽的正則表達式:<(.*)>(.*)</(.*)>|<(.*)/>。
配空行的正則表達式: [s| ]* 。
整數或者小數:^[0-9]+.{0,1}[0-9]{0,2}$。
只能輸入數字:"^[0-9]*$"。
只能輸入n位的數字:"^d{n}$"。
只能輸入至少n位的數字:"^d{n,}$"。
只能輸入m~n位的數字:。"^d{m,n}$"
只能輸入零和非零開頭的數字:"^(0|[1-9][0-9]*)$"。
只能輸入有兩位小數的正實數:"^[0-9]+(.[0-9]{2})?$"。
只能輸入有1~3位小數的正實數:"^[0-9]+(.[0-9]{1,3})?$"。
只能輸入非零的正整數:"^+?[1-9][0-9]*$"。
只能輸入非零的負整數:"^-[1-9][]0-9"*$。
只能輸入長度為3的字元:"^.{3}$"。
只能輸入由26個英文字母組成的字元串:"^[A-Za-z]+$"。
只能輸入由26個大寫英文字母組成的字元串:"^[A-Z]+$"。
只能輸入由26個小寫英文字母組成的字元串:"^[a-z]+$"。
只能輸入由數字和26個英文字母組成的字元串:"^[A-Za-z0-9]+$"。
只能輸入由數字、26個英文字母或者下劃線組成的字元串:"^w+$"。
驗證用戶密碼:"^[a-zA-Z]w{5,17}$"正確格式為:以字母開頭,長度在6~18之間,只能包含字元、數字和下劃線。
驗證是否含有^%&',;=?$"等字元:"[^%&',;=?$x22]+"。
只能輸入漢字:"^[u4e00-u9fa5]{0,}$"。
驗證Email地址:"^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$"。
驗證一年的12個月:"^(0?[1-9]|1[0-2])$"正確格式為:"01"~"09"和"1"~"12"。
驗證一個月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正確格式為;"01"~"09"和"1"~"31"。
匹配中文字元的正則表達式: [u4e00-u9fa5]。
匹配雙位元組字元(包括漢字在內):[^x00-xff]。
應用:計算字元串的長度(一個雙位元組字元長度計2,ASCII字元計1)String.prototype.len=function(){returnthis.replace(/[^x00-xff]/g,"aa").length;}。
⑹ java正則表達式是什麼
java正則表達式是計算機科學的一個概念。正則表達式使用單個字元串來描述、匹配一系列符合某個句法規則的字元串。
在編寫處理字元串的程序或網頁時,經常會有查找符合某些復雜規則的字元串的需要。正則表達式就是用於描述這些規則的工具。換句話說,正則表達式就是記錄文本規則的代碼。
很可能你使用過Windows/Dos下用於文件查找的通配符(wildcard),也就是*和?。如果你想查找某個目錄下的所有的Word文檔的話,你會搜索*.doc。在這里,*會被解釋成任意的字元串。
和通配符類似,正則表達式也是用來進行文本匹配的工具,只不過比起通配符,它能更精確地描述你的需求——當然,代價就是更復雜——比如你可以編寫一個正則表達式,用來查找所有以0開頭,後面跟著2-3個數字,然後是一個連字型大小「-」,最後是7或8位數字的字元串(像010-12345678或0376-7654321)。
正則表達式的基本操作:
正則表達式定義:符合一定規則的表達式。
作用:用於專門操作字元串。
特點:用於一些特定的符號來表示一些代碼操作。這樣就簡化書寫。所以學習正則表達式,就是在學習一些特殊符號的使用。
好處:可以簡化對字元串的復雜操作。
弊端:符號定義越多,正則越長,閱讀性越差。
⑺ 用JAVA正則表達式
代碼如下:
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
publicclassApp{
publicstaticvoidmain(String[]args){
Strings="Planet::=<Mars,Solid,Red,637.137,9.99e10,1000.93,CCW,110>";
Patternpattern=Pattern.compile("([^\s]+)::=<([^>]+)>");
Matchermatcher=pattern.matcher(s);
if(matcher.find()){
Stringresult=matcher.group(1);
System.out.println(result);
result=matcher.group(2);
System.out.println(result);
}
}
}
運行結果:
⑻ java中的正則表達式
Java正則表達式 (<img.*?)style=\".*?\" 替換成 $1
其中.*表示0個或0以上多個任意字元
.*?表示0個或0以上多個任意字元的非貪婪匹配,就是假如一個句子中有多個style,它匹配距離最近的那個style,同理後面的.*?匹配距離最近的雙引號
$1表示反向引用,它代表的是正則表達式中的第一個小括弧所括起來的分組的內容,如果有兩個小括弧括起來的內容,則分別用$1,$2表示它們(在替換後的字元串中)
完整的Java程序如下
123456public class CC { public static void main(String[] args) { String s="<img src=\"file/img/2016/12-28/1234-25521482893088459.jpg\" title=\"1234.jpg\" alt=\"\" width=\"396\" height=\"271\" style=\"width: 396px; height: 271px;\"/>"; System.out.println(s.replaceAll("(<img.*?)style=\".*?\"", "$1")); }}
運行結果
<img src="file/img/2016/12-28/1234-25521482893088459.jpg" title="1234.jpg" alt="" width="396" height="271" />
⑼ Java中怎麼簡單的使用正則表達式
一個正則表達式就是由普通字元(例如大小寫字母)以及特殊字元(稱為元字元)組成的文字模式。該模式描述在查找文字主體時待匹配的一個或多個字元串。正則表達式作為一個模板,將某個字元模式與所搜索的字元串進行匹配。
在最簡單的情況下,一個正則表達式看上去就是一個普通的查找串。例如,正則表達式"java"中沒有包含任何元字元,它可以匹配"java"和"javascript"等字元串,但是不能匹配"Java"。
正則表達式不僅能進行字元串的匹配,還能進行字元串的提取、替換。
示例代碼:
String regEx = ".+/(.+)$";
String str = "D:/java/test.txt";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
if (!m.find()){
System.out.println("文件路徑格式錯誤!");
return;
}
System.out.println(m.group(1));
運行結果:test.txt
正則表達式「.+/(.+)$」的含義就是:被匹配的字元串以任意字元序列開始,後邊緊跟著字元「/」,最後以任意字元序列結尾,「()」代表分組操作,這里就是把文件名做為分組,匹配完畢就可以通過Matcher 類的group方法取到所定義的分組了。需要注意的這里的分組的索引值是從1開始的,所以取第一個分組的方法是m.group(1)而不是m.group(0)。