一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - Java編程中正則表達(dá)式的用法總結(jié)

Java編程中正則表達(dá)式的用法總結(jié)

2020-04-27 12:38超低空 JAVA教程

這篇文章主要介紹了Java編程中正則表達(dá)式的用法總結(jié),正則表達(dá)式是一種強(qiáng)大的字符串處理工具,Java對(duì)正則表達(dá)式的支持還是很不錯(cuò)的,我們先來整理一下正則表達(dá)式的一些基礎(chǔ)知識(shí):

1. 字符串中的正則表達(dá)式
使用正則表達(dá)式可以對(duì)字符串進(jìn)行查找、提取、分割、替換等操作。String類當(dāng)中提供了如下幾個(gè)特殊方法:

boolean matches(String regex):判斷該字符串是否匹配指定的正則表達(dá)式。
String replaceAll(String regex, String replacement):將該字符串中所有匹配regex的子串替換成replacement。
String[] split(String regex):以regex作為分隔符,把該字符串分割成多個(gè)子串。
以上這些特殊的方法都依賴于Java提供的正則表達(dá)式。

2. 創(chuàng)建正則表達(dá)式
x: 字符x(x可代表任何合法的字符);
mnn: 八進(jìn)制數(shù)Omnn所表示的字符;
xhh: 十六進(jìn)制0xhh所表示的字符;
uhhhh: 十六進(jìn)制0xhhhh所表示的UNICODE字符;
:制表符('u0009');
: 新行(換行)符('u000A');
: 回車符('u000D');
: 換頁符('u000C');
: 報(bào)警(bell)符('u0007');
e: Escape符('u001B');
cx: x對(duì)應(yīng)的控制符。例如,cM匹配Ctrl-M。x值必須為A~Z或a~z之一;

3. 正則表達(dá)式中的特殊字符
$: 匹配一行的結(jié)尾。要匹配$字符本身,請(qǐng)使用$;
^: 匹配一行的開頭。要匹配^字符本身,請(qǐng)使用^;
(): 標(biāo)記子表達(dá)式的開始和結(jié)束位置。要匹配這些字符,請(qǐng)使用(和);
[]: 用于確定中括號(hào)表達(dá)式的開始和結(jié)束位置。要匹配這些字符,請(qǐng)使用[和];
{}: 用于標(biāo)記前面子表達(dá)式的出現(xiàn)的頻度。要匹配這些字符,請(qǐng)使用{和};
*: 指定前面子表達(dá)式可以出現(xiàn)零次或多次。要匹配*字符本身,請(qǐng)使用*;
+: 指定前面子表達(dá)式可以出現(xiàn)一次或多次。要匹配+字符本身,請(qǐng)使用+;
?: 指定前面子表達(dá)式可以出現(xiàn)零次或一次。要匹配?字符本身,請(qǐng)使用?;
.: 匹配除換行符 之外的任何單位字符。要匹配,字符本身,請(qǐng)使用.;
:用于轉(zhuǎn)義下一個(gè)字符,或指定八進(jìn)制、十六進(jìn)制符。要匹配字符,請(qǐng)使用\;
|:指定兩項(xiàng)之間任選一項(xiàng)。要匹配|字符本身,請(qǐng)使用|;

4. 預(yù)定義字符
.: 可以匹配任何字符;
d:匹配0~9的所有數(shù)字;
D:匹配非數(shù)字;
s:匹配所有的空白字符,包括空格、制表符、回車符、換頁符、換行符等;
S:匹配所有的非空白字符;
w:匹配所有的單詞字符,包括0~9所有的數(shù)字、26個(gè)英文字母和下劃線(_);
W:匹配所有的非單詞字符;

5. 邊界匹配符
^: 行的開頭
$: 行的結(jié)尾
: 單詞的邊界
B: 非單詞的邊界
A: 輸入的開頭
G: 前一個(gè)匹配的結(jié)尾
Z: 輸入的結(jié)尾,僅用于最后的結(jié)束符
z: 輸入的結(jié)尾

6. 表示匹配次數(shù)的符號(hào)
下圖顯示了表示匹配次數(shù)的符號(hào),這些符號(hào)用來確定緊靠該符號(hào)左邊的符號(hào)出現(xiàn)的次數(shù):

Java編程中正則表達(dá)式的用法總結(jié)

(1)假設(shè)我們要在文本文件中搜索美國的社會(huì)安全號(hào)碼。這個(gè)號(hào)碼的格式是999-99-9999。用來匹配它的正則表達(dá)式如圖一所示。在正則表達(dá)式中,連字符(“-”)有著特殊的意義,它表示一個(gè)范圍,比如從0到9。因此,匹配社會(huì)安全號(hào)碼中的連字符號(hào)時(shí),它的前面要加上一個(gè)轉(zhuǎn)義字符“”。

Java編程中正則表達(dá)式的用法總結(jié)

(2)假設(shè)進(jìn)行搜索的時(shí)候,你希望連字符號(hào)可以出現(xiàn),也可以不出現(xiàn)——即,999-99-9999和999999999都屬于正確的格式。這時(shí),你可以在連字符號(hào)后面加上“?”數(shù)量限定符號(hào),如圖所示:

Java編程中正則表達(dá)式的用法總結(jié)

(3)下面我們?cè)賮砜戳硗庖粋€(gè)例子。美國汽車牌照的一種格式是四個(gè)數(shù)字加上二個(gè)字母。它的正則表達(dá)式前面是數(shù)字部分“[0-9]{4}”,再加上字母部分“[A-Z]{2}”。下圖顯示了完整的正則表達(dá)式。

Java編程中正則表達(dá)式的用法總結(jié)

 

7.一些實(shí)例
例子1

?
1
2
3
4
5
6
7
8
9
function replace(content){
 var reg = '\[(\w+)\]',
  pattern = new RegExp(reg, 'g');
 return content.replace(pattern, '<img src="img/$1.png">');
}
//或
function replace(content){
 return content.replace(/[(w+)/g, '<img src="img/$1.png">');
}

例子2

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//zero-width look behind的替換方案
//(?<=...)和(?<!...)
//方法一:反轉(zhuǎn)字符串,用lookahead進(jìn)行搜索,替換以后再倒回來,例如:
String.prototype.reverse = function () {
  return this.split('').reverse().join('');
}
//模擬'foo.bar|baz'.replace(/(?<=.)b/, 'c') 即將前面有'.'的b換成c
'foo.bar|baz'.reverse().replace(/b(?=.)/g, 'c').reverse() //foo.car|baz
 
//方法二:不用零寬斷言,自己判斷
//模擬'foo.bar|baz'.replace(/(?<=.)b/, 'c') 即將前面有'.'的b換成c
'foo.bar|baz'.replace(/(.)?b/, function ($0, $1) {
  return $1 ? $1 + 'c' : $0
}) //foo.car|baz
//模擬'foo.bar|baz'.replace(/(?<!.)b/, 'c') 即將前面沒有'.'的b換成c
'foo.bar|baz'.replace(/(.)?b/, function ($0, $1) {
  return $1 ? $0 : 'c'
}) //foo.bar|caz
//這個(gè)方法在一些比較簡(jiǎn)單的場(chǎng)景下有用,并且可以和lookahead一起用
//但也有很多場(chǎng)景無效,例如:
//'tttt'.replace(/(?<=t)t/g, 'x') 結(jié)果應(yīng)該是'txxx'
'tttt'.replace(/(t)?t/g, function ($0, $1) {
  return $1 ? $1 + 'x' : $0;
}) // txtx

例子3

$&符號(hào)的使用

?
1
2
3
4
5
6
function escapeRegExp(str) {
 return str.replace(/[abc]/g, "($&)");
}
 
var str = 'a12b34c';
console.log(escapeRegExp(str)); //(a)12(b)34(c)

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 美女插插视频 | 精品国产91久久久久 | 日韩三及片| 国产尤物精品视频 | 日本videosdesexo乱 | 国产99页 | 国产亚洲精品精品国产亚洲综合 | 午夜理论片日本中文在线 | 被老外玩爽的中国美女视频 | 艹艹逼| 久久丫线这里只精品 | 幸福草电视剧演员表介绍 | 久久九九久精品国产尤物 | 日本妇人成熟免费不卡片 | 欧美综合亚洲图片综合区 | 久久香蕉电影 | 色小孩导航 | 青草视频网址 | 夫妻性生活在线 | 成人蜜桃网 | 亚洲视频观看 | 亚洲黄色高清 | 亚洲酒色1314狠狠做 | 免费看一级毛片 | 亚洲国产精品免费在线观看 | 九九热在线免费观看 | 国产毛片在线观看 | 免费毛片大全 | 国产精品一二三 | 日本阿v精品视频在线观看 日本xxx片免费高清在线 | 色姑娘色综合 | 精品国产福利在线 | 91极品在线观看 | 40岁女人三级全黄 | 国产精品露脸国语对白99 | 日本在线视频网址 | 无人在线高清免费看 | 日本高清视频在线观看 | 青草久久网 | 国产成人a∨麻豆精品 | 青青草国产青春综合久久 |