1. 程式人生 > >Java正則表示式初探(一)

Java正則表示式初探(一)

好多同學們總是聽別人說起正則表示式這個東西,也有很多用接觸到實際使用過。但是相信有很大一部分人是在用的時候採取網站上搜索,拿一個一知半解的別人寫的例子過來,簡單測試下功能可用,就OK了。正則表示式那晦澀難懂的語法讓很多人望而卻步。但是讀了本文,我相信很多人對於正則表示式就算是基本入門了。最快捷的精通的辦法,還是多練多寫。

一、什麼是正則表示式?

正則表示式,又稱正則表示式、正規表示法、常規表示法(英語:Regular Expression,在程式碼中常簡寫為regex、regexp或RE),電腦科學的一個概念。正則表示式使用單個字串來描述、匹配一系列符合某個句法規則的字串。在很多文字編輯器裡,正則表示式通常被用來檢索、替換那些符合某個模式的文字。許多程式設計語言都支援利用正則表示式進行字串操作。例如,在Perl中就內建了一個功能強大的正則表示式引擎。正則表示式這個概念最初是由Unix中的工具軟體(例如sed和grep)普及開的。正則表示式通常縮寫成“regex”,單數有regexp、regex,複數有regexps、regexes、regexen。

二、java中正則表示式的實現

java中正則表示式相關的類都在java.util.regex包下面,我們先來看看都有哪些吧。

clip_image002

主要就是兩個類,java的正則表示式相關的功能都已經在這兩個類裡面實現了。下面簡單介紹下正在表示式中的語法吧。

1.字元

字元在正則表示式中,代表的就是一個字元本身。

Pattern p = Pattern.compile("abc");

上面這個正則表示式,代表就是匹配“abc”這個字串,字元是正在表示式中對基本的元素,也非常好理解。

2.字元類

字元類在正則表示式中,代表的是一類字元。使用半形中括號代表字元類。中括號中可以出現一些帶有含義的特殊字元。簡單具體如下:

clip_image004

3.預定義字元類

正在表示式中,將人們最常用的字元類已經提前定義好,並且使用一個特殊的表達形式代替,讓人們使用起來更加方便快捷。

clip_image006

4.邊界匹配

邊界匹配符,用於定義正則表示式匹配的邊界約束。

clip_image008

5.量詞

量詞用於定義正則表示式中,字元出現的次數。量詞的匹配模式分為三種:貪婪、勉強、獨佔

clip_image010

6.捕獲組和非捕獲組

捕獲組的定義目的是為了將匹配到的內容當中定義幾個部分,人們能夠分別獲取每一個部分的內容。捕獲組的定義,與匹配無關,對於匹配結果也沒有影響只是為了單純的進行文字分組的。

非捕獲組和捕獲組恰恰相反,他是為了影響是否匹配,但是在匹配結果中又不出現的一種分組形式。

clip_image012

三、寫在最後

在學習一個晦澀難度的技術的時候,最重要得還是要能夠靜的下心來,以及掌握一個正確的學習方法吧。

上面的內容在Java API中Pattern這個類的說明中有詳細的解釋。

沒記住的同學,隨時可以使用API查詢。第二講中將針對上述的概念,以具體的例子來說明用法。

相關推薦

Java表示式初探()

好多同學們總是聽別人說起正則表示式這個東西,也有很多用接觸到實際使用過。但是相信有很大一部分人是在用的時候採取網站上搜索,拿一個一知半解的別人寫的例子過來,簡單測試下功能可用,就OK了。正則表示式那晦澀難懂的語法讓很多人望而卻步。但是讀了本文,我相信很多人對於正則表示式就算是基本入門了。最快捷的精通的辦法,還

JAVA表示式初探

今天有一個需求 ,提上來類似 123#223#2 這樣的字串,要把裡面的數字匹配出來,就看了一下java的正則 以前一直用python處理正則,相比之下java的正則功能是弱了一點 public static void main(String[] args) { Pat

Java表示式過濾、替換,將段文字中的英語單詞分別提取出,並統計詞頻,按詞頻排序。

最近在學習自然語言處理,在建立基礎標籤庫時,遇到一個需要提取語料中的英文單詞的工作,做好了現在來和大家分享下。 實現效果:讀取檔案內容,把其中的英文單詞提取出,並統計詞頻。提取時,原本不是連在一起的單詞可以分開獨立提取,例如:我的PPT和WORD,可以提取出PPT,WORD兩個單詞。 基本思

java使用表示式長串字元中獲取段特徵字串

只能說String工具類太強大,導致一直以來,幾乎沒怎麼用到過正則表示式,現在突然要用到,參考正則表示式語法,摸索一上午才搞出來。記錄分享一下,以免忘記 從一長串字元中,截取出邀請碼,我想很多人都遇到過。 String s = "邀請您加入隨心購,自動搜尋淘寶天貓優惠券!先領券,再購

利用Java裡的表示式群人身份證上的出生年月日

package Regex; import java.util.regex.*; import java.util.regex.Matcher; public class testIdCard { public static void main(String[] ar

Java 表示式全攻略 ()

Java 正則表示式全攻略 (一)   特此宣告 本文並非全部原創,我只是在前人的基礎上進行鍼對Java的補充和完成。特此向各位前輩致敬。本文來源於以下內容: 什麼是正則表示式          正則表示式(英文:Regular E

java表示式學習筆記

本人在開發中使用正則表達的場景並不多,偶爾用一下,學習一波,時間久了就又忘記了,放到部落格中,說不定什麼時候就用到了。   一.正則表示式的語法 這個語法表來自:http://www.runoob.com/java/java-regular-expressions.html

JAVA表示式區分IPv4和IPv6地址

PS*程式碼直接見第二部分: 一、進入正題前先說說JAVA正則表示式相關概念: 1、常用字元類: [abc] == a||b||c   [a-zA-Z] == 所有大小寫字母中的任意一個      [0-9A-Za-z] == 任意

java表示式去除html中所有的標籤和特殊HTML字元

關於java正則表示式去除html中所有的標籤和特殊HTML字元,結合我所做的專案總結的經驗: 總共分為三種:第一種適用於適用短的文章,將文章用正則表示式的方式拼接到程式碼中,有些繁瑣,其實不太實用。第二種就是直接將文件引入,進行更改,但是有一個小缺點,就是文件中的格式可能是utf-8格式的

Java表示式實現港、澳、臺身份證驗證

最近由於業務的要求,需要進行港、澳、臺人員身份證驗證,現在直接上程式碼,經供參考學習,也為自己積累一些工具類: package com.qiu.validate; public class regexValidateCard { public String validateIdCard10(String id

20180716-Java表示式

import java.util.regex.Matcher;import java.util.regex.Pattern; public class RegexMatches{ public static void main(String[] args){ //按指定模式在字串查詢 String line

java表示式的使用:6位數字

public static void main(String[] args) { Pattern pattern = Pattern.compile("\\d{6}"); boolean matches = pattern.matcher("a21109").matches(); S

Java——表示式

正則表示式定義了字串的模式。 正則表示式可以用來搜尋、編輯或處理文字。 正則表示式並不僅限於某一種語言,但是在每種語言中有細微的差別。 java.util.regex 包主要包括以下三個類: Pattern 類: pattern 物件是一個正則表示式的編譯表示。Pattern

詳解JavaScript表示式

RegExp 物件表示正則表示式,它是對字串執行模式匹配的強大工具 這篇文章主要是對正則表示式有一個全面的瞭解,學完之後,當再次看到一些比較複雜的正則表示式的時候就可以逐步分析了。當然,再加上一段時間的練習,相信你自己也可以學會怎麼使用正則表示式的。 1、例項化正則表示式的兩種方

java表示式校驗

Pattern pattern = Pattern.compile("\\d+\\.\\d+$|-\\d+\\.\\d+$");//判斷是否為小數 Pattern pattern1 = Pattern.compile("^\\d+$|-\\d+$"); if (pattern.match

Java表示式匹配日期及基本使用

廢話不多說,直接上程式碼: package top.yangxianyang.test; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.junit.Test; public

Java表示式學習與記錄

轉載自:http://www.runoob.com/java/java-regular-expressions.html 正則表示式定義了字串的模式,用於搜尋、編輯或處理文字。 1、正則表示式中字元意義: \            將下一字元標

Java表示式應用小結

 案例: Pattern p = Pattern.compile("a*b"); // 生成Pattern例項(設定匹配模式【規則】)- 靜態方法 Matcher m = p.matcher("aaaaab");    // 生成Match例項(

java 表示式 複習

正則表示式在日常開發中會經常的接觸到,學會了正則可以更有效的對字元進行驗證、拆分、替換、判斷字串是否合法等操作。。。 常用語法: 字元的取值範圍 1.[abc] : 表示可能是a,可能是b,也可能是c。 2.[^abc]: 表示不是a,b,c中的任意一個 3.[a-zA-Z]: 表示

java表示式匹配所有相匹配的內容

java使用正則表示式匹配所有內容 ---- ** 構建正則表示式 String patternCode="baseid=\\w+"; String patternTitle="title=\\\"[\\u4e00-\\u9fa5]*·?[\\u4e00-\\u9fa5]*\\(?[