java正則表達
『壹』 java中什麼是正則表達式
正則表達式 就是將一個類型的數據 按照一定方式 寫成正則表達式的形式 這樣可以辨別數據是否符合這一類型的數據 比如我們的身份證號碼 就是有一定的規則的 這樣我們寫一個 正則表達式 和別人輸入的身份證號碼 比對 如果符合這個正則表達式的規則 就是身份證號碼
『貳』 關於java中正則表達式的一些語句理解
//下面是完整代碼,具體的分析都在代碼注釋里:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test6
{
public static void main(String[] args)
{
//正則表達式字元串:
// [] 內的數字表示取值可以是任意一個,
//\d 匹配一個數字字元。等價於[0-9]。
//\ 將下一個字元標記為一個特殊字元、或一個原義字元、或一個向後引用、或一個八進制轉義符。例如,「\\n」匹配\n。
//{n} n是一個非負整數。匹配確定的n次
String regex="1[3458][01256]\\d{8}";
String str="14057539559";
/*
Pattern類:
正則表達式的編譯表示形式。
指定為字元串的正則表達式必須首先被編譯為此類的實例。
然後,可將得到的模式用於創建 Matcher 對象,依照正則表達式,該對象可以與任意字元序列匹配。
執行匹配所涉及的所有狀態都駐留在匹配器中,所以多個匹配器可以共享同一模式。
compile方法:
static Pattern compile(String regex)
將給定的正則表達式編譯到模式中。
*/
Pattern pattern=Pattern.compile(regex);
/*
* Pattern的
matcher方法
根據要匹配的字元序列 ,創建匹配給定輸入與此模式的匹配器,然後返回此模式的新匹配器。
*/
Matcher matcher=pattern.matcher(str);
/*
* Matcher的
matches()方法
嘗試將整個區域與模式匹配。
當且僅當整個區域序列匹配此匹配器的模式時才返回 true。
*/
boolean bool=matcher.matches();
if (bool==true)
{
System.out.println("是聯通號");
}
else
{
System.out.println("不是聯通號");
}
}
/*
代碼如上:。我想問的是:
(1)Pattern pattern=Pattern.compile(regex); 這句話能不能幫我分析一下。
(2)Matcher matcher=pattern.matcher(str);分析一下這句話的作用和每一部的作用。
(3) boolean bool=matcher.matches();比較不需要傳入參數?
*/
}
『叄』 java里正則表達式是什麼意思啊
就是用來匹配某種格式的。
一個正則表達式,就是用某種模式去匹配一類字元串的一個公式。很多人因為它們看上去比較古怪而且復雜所以不敢去使用——很不幸,這篇文章也不能夠改變這一點,不過,經過一點點練習之後我就開始覺得這些復雜的表達式其實寫起來還是相當簡單的,而且,一旦你弄懂它們,你就能把數小時辛苦而且易錯的文本處理工作壓縮在幾分鍾(甚至幾秒鍾)內完成.
『肆』 java 正則表達式 (:(\\w+)) 是表示什麼意思啊
1、()表示分組:將一序列正則表達式看作一個整體;
2、^表示正則開始,$表示正則結束;
3、:表示該位置的字元為冒號;
4、\w相當於a-zA-Z0-9_,匹配單詞字元;
望採納!!!
『伍』 Java中的正則是什麼意思求解
正則是,一種字元串處理表達式,可進行文本的查找,替換,判斷某個文本是否存在,子文本串的提取等操作,正則表達式的書寫必須滿足一定規則。
此處我指出一點,初學者,容易犯錯的地方:
*?與*的區別,專業術語叫貪婪匹配與非貪婪匹配,通俗解釋:如果我們要匹配一個html標記:
<div><a href="http://..com" target="123">知道</a><a href="http://www.qq.com" target="123">騰訊</a></div>
<a.*?>.*?</a>能匹配上每一個<a></a>標簽對,而:<a.*?>.*</a>匹配上的是<a href="http://..com" target="123">知道</a><a href="http://www.qq.com" target="123">騰訊</a>
總結所謂貪婪中間有多長不管,一直給匹配到最後一個適合的文本串。非貪婪只匹配到第一個找到的模式結束。
除了貪婪與非貪婪網上很難找到資料,術語很難理解。其他的很容易學會。
正則表達式是處理大文本效率極佳的一種工具。它的實現不單單是java,有javascript,unix文本處理命令(代表C語言有實現庫),swift等流行語言,windows下的文本編輯器(如editplus,notepad++)。正則表達式,本段列舉出來的語言工具基本上能完全支持。
總之正則表達式是一種很有用的工具,希望你能學好。
『陸』 在JAVA裡面怎麼使用正則表達式
請參考博客:http://smallwoniu.blog.51cto.com/3911954/1324133
『柒』 java 正則表達式
這樣寫就行了
String str = "xxxx";
Pattern p = Pattern.compile("(?<=\\<level\\>)(\\s*.*\\s*)(?=\\<\\/level\\>)");
Matcher m = p.matcher(str);
while(m.find()){
Log.e("Regex"," Regex result: " + m.group())
}
『捌』 java中正則表達式的寫法
正則表達式: <A HREF=.*main_id=.*>([^ <]*) </A>
Pattern p=Pattern.compile(" <A HREF=.*main_id=.*>([^ <]*) </A>",Pattern.MULTILINE);
Pattern.MULTILINE指定多行模式.
『玖』 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正則表達式如何表示否定
正則表達式在[ ]內使用^可以表示否定,但是這個否定指定是非[ ]內的任一字元,而不是字元串
比如[^abc]+,這樣一個正則匹配的是:非a非b且非c的一個或多個字元。匹配1、34、dd、f、sd12……,不能匹配 abc、a11、ab32、abd……
如果想表達 非abc,但是abd、abe、bcd等可以匹配,在正則中是沒有類似 !abc 這樣的寫法的。只能通過其他方式去變通的匹配,比如寫成[^a].{2}|a[^b].|ab[^c]。
以上 針對所有語言的正則表達式寫法,java在內。