正則表達(dá)式中.+?與.*?的區(qū)別
. 匹配除“\r\n”之外的任何單個(gè)字符。要匹配包括“\r\n”在內(nèi)的任何字符,請(qǐng)使用像“[\s\S]”的模式。
? | 匹配前面的子表達(dá)式0到1次 |
---|---|
* | 匹配前面的子表達(dá)式人任意次 |
+ | 匹配前面的子表達(dá)式一次或多次>=1) |
? | 匹配前面的子表達(dá)式0到1次 |
加問號(hào)則表示為懶惰模式
- .+? 表示匹配任意字符一個(gè)或則多個(gè)
- .*? 表示匹配任意字符0個(gè)或多個(gè)
在具體使用時(shí).+?可能跟好用些,看個(gè)人喜好
既然寫了,順帶將正則的知識(shí)補(bǔ)全吧;;
"\b" :不會(huì)消耗任何字符只匹配一個(gè)位置,常用于匹配單詞邊界 如 我想從字符串中"This is Regex"匹配單獨(dú)的單詞 "is" 正則就要寫成 "\bis\b" \b 不會(huì)匹配is 兩邊的字符,但它會(huì)識(shí)別is 兩邊是否為單詞的邊界 "\d": 匹配數(shù)字, "\w":匹配字母,數(shù)字,下劃線. "\s":匹配空格 ".":匹配除了換行符(\r\n)以外的任何字符 這個(gè)算是"\w"的加強(qiáng)版了"\w"不能匹配 空格 如果把字符串加上空格用"\w"就受限了, 用 "."是如何匹配字符"a23 4 5 B C D__TTz" 正則:".+" "[abc]": 字符組 匹配包含括號(hào)內(nèi)元素的字符
匹配能力 ( . > \w > \d )
反義:
寫法很簡單改成大寫就行了,這也很好理解;
"\W" 匹配任意不是字母,數(shù)字,下劃線 的字符 "\S" 匹配任意不是空白符的字符 "\D" 匹配任意非數(shù)字的字符 "\B" 匹配不是單詞開頭或結(jié)束的位置 "[^abc]" 匹配除了abc以外的任意字符 "{n}" 重復(fù)n次
例如從"aaaaaaaa" 匹配字符串的a 并重復(fù)3次 正則: “a{3}” 結(jié)果就是取到3個(gè)a字符 “aaa”;
“{n,m}” 重復(fù)n到m次
例如正則 “a{3,4}” 將a重復(fù)匹配3次或者4次 所以供匹配的字符可以是三個(gè)"aaa"也可以是四個(gè)"aaaa" 正則都可以匹配到
"{n,}" 重復(fù)n次或更多次
與{n,m}不同之處就在于匹配的次數(shù)將沒有上限,但至少要重復(fù)n次 如 正則"a{3,}" a至少要重復(fù)3次
"??" 重復(fù)0次或1次,但盡可能少重復(fù)
如 “aaacb” 正則 “a.??b” 只會(huì)取到最后的三個(gè)字符"acb"
“{n,m}?” 重復(fù)n到m次,但盡可能少重復(fù)
如 "aaaaaa" 正則 "a{0,m}" 因?yàn)樽钌偈?次所以取到結(jié)果為空
“{n,}?” 重復(fù)n次以上,但盡可能少重復(fù)
如 "aaaaa" 正則 "a{1,}" 最少是1次所以取到結(jié)果為 "a"
n+ | 匹配n至少一次(>=1) |
---|---|
n? | 匹配n 0次 或一次 (有與無) |
n* | 匹配n 隨意次(*可代表任意字母) |
?=n | 匹配任何其后緊接指定字符串 n 的字符串 |
?!n | 匹配任何其后沒有緊接指定字符串 n 的字符串。 |
==>兩者相互等價(jià)
n? | n{0,1} |
---|---|
n+ | n{1,} |
n* | n{0,} |
到此這篇關(guān)于正則表達(dá)式中.+?與.*?的區(qū)別的文章就介紹到這了,更多相關(guān)正則表達(dá)式 .+?與.*?內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
開發(fā)過程最全的正則表達(dá)式匹配中英文、字母和數(shù)字
這篇文章主要介紹了開發(fā)過程最全的正則表達(dá)式匹配中英文、字母和數(shù)字 的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05JavaScript中的正則表達(dá)式使用及驗(yàn)證qq號(hào)碼的正則
這篇文章給大家介紹了javascript中的正則表達(dá)式使用及驗(yàn)證qq號(hào)碼的正則表達(dá)式,涉及到手機(jī)號(hào)、姓名、qq相關(guān)知識(shí)驗(yàn)證,感興趣的朋友一起學(xué)習(xí)吧2015-11-11MyEclipse刪除網(wǎng)上復(fù)制下來的來代碼帶有的行號(hào)(正則去除行號(hào))
這篇文章主要介紹了MyEclipse刪除網(wǎng)上復(fù)制下來的來代碼帶有的行號(hào),利用正則表達(dá)式進(jìn)行去除,感興趣的小伙伴們可以參考一下2015-12-12關(guān)于內(nèi)容的分離,正則抽出圖片(一定要加精哦)
我們?cè)诩觾?nèi)容時(shí),無論你怎么樣排版都好,我們都是無法將里面的圖片或是別的什么東西抽出來的.2009-01-01