?:在正则表达式中什么意思
生活随笔
收集整理的這篇文章主要介紹了
?:在正则表达式中什么意思
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
“?:”非獲取匹配,匹配冒號后的內(nèi)容但不獲取匹配結(jié)果,不進(jìn)行存儲(chǔ)供以后使用。
單獨(dú)的“?”:匹配前面的子表達(dá)式零次或一次。
當(dāng)“?”緊跟在任何一個(gè)其他限制符(*,+,?,{n},{n,},{n,m})后面時(shí),匹配模式是非貪婪的。非貪婪模式盡可能少地匹配所搜索的字符串,而默認(rèn)的貪婪模式則盡可能多地匹配所搜索的字符串。
轉(zhuǎn)存失敗重新上傳取消
擴(kuò)展資料
正則表達(dá)式是對字符串(包括普通字符(例如,a 到 z 之間的字母)和特殊字符(稱為“元字符”))操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個(gè)“規(guī)則字符串”,這個(gè)“規(guī)則字符串”用來表達(dá)對字符串的一種過濾邏輯。正則表達(dá)式是一種文本模式,模式描述在搜索文本時(shí)要匹配的一個(gè)或多個(gè)字符串。
參考資料來源:百度百科:正則表達(dá)式
19???22 ?評論? 分享 ?舉報(bào)轉(zhuǎn)存失敗重新上傳取消
轉(zhuǎn)存失敗重新上傳取消yongirl320?推薦于2017-10-09 展開全部 ?: 是 不想被捕獲的時(shí)候使用 可以提高程序執(zhí)行速度
比如 ([a-z][0-9])+
這個(gè)正則表達(dá)式里 ( ) 里面的內(nèi)容被捕獲了, 反向引用的時(shí)候可以用上 。
一般正則替換的時(shí)候用的多 像UBB代碼
但是 如果寫成 (?:[a-z][0-9])+
跟上面 正則表達(dá)式 整體匹配是一樣的 就是 不會(huì)捕獲 ( )里內(nèi)容了。
也就是不能使用 反向引用
如果還是不太理解, 那就先了解一下 反向引用吧。 追問
不理解。能不能詳細(xì)點(diǎn)。 追答 比如 PHP 手冊里 有個(gè) 正則替換的函數(shù) preg_replace 有的列子$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string);
// 結(jié)果顯示 April1,2003這里就用上了 反響引用
$replacement 里的 ${1} 代表 (\w+) , $3代表 第2個(gè) (\d+)
這個(gè)正則表達(dá)式 里 一共有 3個(gè) () 也就是 可以 用 $1 $2 $3 調(diào)用 3個(gè)()里的 內(nèi)容。也可以使用 \1 \2 \3 來 代替 $1 $2 $3 都是一樣的那接下來 如果把 代碼里的 正則表達(dá)式 改成下面的$pattern = '/(?:\w+) (?:\d+), (\d+)/i';
那 這里 只有 一個(gè) () 里的 內(nèi)容 能使用
帶 ?:的 ()里面內(nèi)容是不會(huì)被 捕獲的 ,所以 只能使用 $1 代表最后的 (\d+)
總結(jié)
以上是生活随笔為你收集整理的?:在正则表达式中什么意思的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 正则表达式中?=和?:和?!的理解
- 下一篇: 正则表达式中的\.表示什么意思