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