php中正則表達(dá)式詳解

概述

正則表達(dá)式是一種描述字符串結(jié)果的語(yǔ)法規(guī)則,是一個(gè)特定的格式化模式什猖,可以匹配票彪、替換红淡、截取匹配的字符串。常用的語(yǔ)言基本上都有正則表達(dá)式降铸,如JavaScript在旱、java等。其實(shí)推掸,只有了解一種語(yǔ)言的正則使用桶蝎,其他語(yǔ)言的正則使用起來(lái),就相對(duì)簡(jiǎn)單些谅畅。文本主要圍繞解決下面問(wèn)題展開(kāi)登渣。

有哪些常用的轉(zhuǎn)義字符

什么是限定符與定位符

什么是單詞定位符

特殊字符有哪些

什么是逆向引用以及怎樣使用逆向引用

匹配模式

php中怎樣使用正則表達(dá)式

php中哪些方面需要用到正則

怎樣進(jìn)行郵箱匹配,url匹配毡泻,手機(jī)匹配

怎樣使用正則替換字符串中某些字符

貪婪匹配與惰性匹配區(qū)別

正則表達(dá)式之回溯與固態(tài)分組

正則優(yōu)缺點(diǎn)有哪些

正則表達(dá)式的基本知識(shí)匯總

行定位符(^與$)

行定位符是用來(lái)描述字符串的邊界胜茧。“$”表示行結(jié)尾“^”表示行開(kāi)始如"^de"仇味,表示以de開(kāi)頭的字符串"de$",表示以de結(jié)尾的字符串竹揍。

單詞定界符

我們?cè)诓檎业囊粋€(gè)單詞的時(shí)候,如an是否在一個(gè)字符串”gril and body”中存在邪铲,很明顯如果匹配的話(huà)芬位,an肯定是可以匹配字符串“gril and body”匹配到,怎樣才能讓其匹配單詞带到,而不是單詞的一部分呢昧碉?這時(shí)候,我們可以是喲個(gè)單詞定界符\b揽惹。

\ban\b 去匹配”gril and body”的話(huà)被饿,就會(huì)提示匹配不到。

當(dāng)然還有一個(gè)大寫(xiě)的\B搪搏,它的意思狭握,和\b正好相反,它匹配的字符串不能使一個(gè)完整的單詞疯溺,而是其他單詞或字符串中的一部分论颅。如\Ban\B。

選擇字符(|) 囱嫩,表示或

選擇字符表示或的意思恃疯。如Aa|aA,表示Aa或者是aA的意思墨闲。注意使用”[]”與”|”的區(qū)別今妄,在于”[]”只能匹配單個(gè)字符,而”|”可以匹配任意長(zhǎng)度的字符串。在使用”[]”的時(shí)候盾鳞,往往配合連接字符”-“一起使用犬性,如[a-d],代表a或b或c或d。

排除字符腾仅,排除操作

正則表達(dá)式提供了”^”來(lái)表示排除不符合的字符仔夺,^一般放在[]中。如[^1-5]攒砖,該字符不是1~5之間的數(shù)字缸兔。

限定符(?*+{n吹艇,m})

限定符主要是用來(lái)限定每個(gè)字符串出現(xiàn)的次數(shù)惰蜜。

限定字符含義

?零次或一次

*零次或多次

+一次或多次

{n}n次

{n,}至少n次

{n,m}n到m次

如(D+)表示一個(gè)或多個(gè)D

點(diǎn)號(hào)操作符

匹配任意一個(gè)字符(不包含換行符)

表達(dá)式中的反斜杠(\)

表達(dá)式中的反斜杠有多重意義受神,如轉(zhuǎn)義抛猖、指定預(yù)定義的字符集、定義斷言鼻听、顯示不打印的字符财著。

轉(zhuǎn)義字符

轉(zhuǎn)義字符主要是將一些特殊字符轉(zhuǎn)為普通字符。而這些常用特殊字符有”.”撑碴,”?”撑教、”\”等。

指定預(yù)定義的字符集

字符含義

\d任意一個(gè)十進(jìn)制數(shù)字[0-9]

\D任意一個(gè)非十進(jìn)制數(shù)字

\s任意一個(gè)空白字符(空格醉拓、換行符伟姐、換頁(yè)符、回車(chē)符亿卤、字表符)

\S任意一個(gè)非空白字符

\w任意一個(gè)單詞字符

\W任意個(gè)非單詞字符

###顯示不可打印的字符

字符含義

\a報(bào)警

\b退格

\f換頁(yè)

\n換行

\r回車(chē)

\t字表符

括號(hào)字符()

在正則表達(dá)式中小括號(hào)的作用主要有:

改變限定符如(|愤兵、* 、^)的作用范圍

如(my|your)baby排吴,如果沒(méi)有”()”秆乳,|將匹配的是要么是my,要么是yourbaby,有了小括號(hào)钻哩,匹配的就是mybaby或yourbaby屹堰。

進(jìn)行分組,便于反向引用

反向引用

反向引用憋槐,就是依靠子表達(dá)式的”記憶”功能双藕,匹配連續(xù)出現(xiàn)的字串或是字符。如(dqs)(pps)\1\2阳仔,表示匹配字符串dqsppsdqspps。在下面php應(yīng)用中,我將詳細(xì)展開(kāi)學(xué)習(xí)反向引用近范。

模式修飾符

模式修飾符的作用是設(shè)定模式嘶摊,也就是正則表達(dá)式如何解釋。php中主要模式如下表:

修飾符說(shuō)明

i忽略大小寫(xiě)

m多文本模式

s單行文本模式

x忽略空白字符

正則表達(dá)式在php中應(yīng)用

php中字符串匹配

所謂的字符串匹配评矩,言外之意就是判斷一個(gè)字符串中叶堆,是否包含或是等于另一個(gè)字符串。如果不使用正則斥杜,我們可以使用php中提供了很多方法進(jìn)行這樣的判斷虱颗。

不使用正則匹配

strstr函數(shù)

string strstr ( stringhaystack,mixedneedle [, bool $before_needle = false ])

注1:haystack是當(dāng)事字符串,needle是被查找的字符串蔗喂。該函數(shù)區(qū)分大小寫(xiě)忘渔。

注2:返回值是從needle開(kāi)始到最后。

注3:關(guān)于$needle缰儿,如果不是字符串畦粮,被當(dāng)作整形來(lái)作為字符的序號(hào)來(lái)使用。

注4:before_needle若為true,則返回前東西乖阵。

stristr函數(shù)與strstr函數(shù)相同宣赔,只是它不區(qū)分大小寫(xiě)

strpo函數(shù)

int strpos ( stringhaystack,mixedneedle [, int $offset = 0 ] )

注1:可選的 offset 參數(shù)可以用來(lái)指定從 haystack 中的哪一個(gè)字符開(kāi)始查找。返回的數(shù)字位置是相對(duì)于 haystack 的起始位置而言的瞪浸。

stripos -查找字符串首次出現(xiàn)的位置(不區(qū)分大小定)

strrpos -計(jì)算指定字符串在目標(biāo)字符串中最后一次出現(xiàn)的位置

strripos -計(jì)算指定字符串在目標(biāo)字符串中最后一次出現(xiàn)的位置(不區(qū)分大小寫(xiě)

使用正則進(jìn)行匹配

在php中儒将,提供了preg_math()和preg_match_all函數(shù)進(jìn)行正則匹配。關(guān)于這兩個(gè)函數(shù)原型如下:

int preg_match|preg_match_all (string$pattern ,string$subject [, array &$matches [,int$flags =0 [,int$offset =0 ]]] )

搜索subject與pattern給定的正則表達(dá)式的一個(gè)匹配.

pattern:要搜索的模式对蒲,字符串類(lèi)型椅棺。

subject :輸入字符串。

matches:如果提供了參數(shù)matches齐蔽,它將被填充為搜索結(jié)果两疚。matches[0]將包含完整模式匹配到的文本,matches[1]將包含第一個(gè)捕獲子組匹配到的文本含滴,以此類(lèi)推诱渤。

flags:flags可以被設(shè)置為以下標(biāo)記值:PREG_OFFSET_CAPTURE 如果傳遞了這個(gè)標(biāo)記,對(duì)于每一個(gè)出現(xiàn)的匹配返回時(shí)會(huì)附加字符串偏移量(相對(duì)于目標(biāo)字符串的)谈况。 注意:這會(huì)改變填充到matches參數(shù)的數(shù)組勺美,使其每個(gè)元素成為一個(gè)由 第0個(gè)元素是匹配到的字符串,第1個(gè)元素是該匹配字符串 在目標(biāo)字符串subject中的偏移量碑韵。

offset:通常赡茸,搜索從目標(biāo)字符串的開(kāi)始位置開(kāi)始∽N牛可選參數(shù) offset 用于 指定從目標(biāo)字符串的某個(gè)未知開(kāi)始搜索(單位是字節(jié))占卧。

返回值:preg_match()返回 pattern 的匹配次數(shù)。 它的值將是0次(不匹配)或1次,因?yàn)?preg_match()在第一次匹配后 將會(huì)停止搜索华蜒。 preg_match_all()不同于此辙纬,它會(huì)一直搜索subject直到到達(dá)結(jié)尾。 如果發(fā)生錯(cuò)誤 preg_match()返回 FALSE叭喜。

實(shí)例

實(shí)例1

判斷字符串”http://blog.csdn.net/hsd2012“中是否包含csdn?

解法一(不適用正則):

如果不適用正則贺拣,我們使用strstr或者strpos中任意一個(gè)都可以,在此捂蕴,我將使用strstr函數(shù)譬涡,代碼如下:

$str='http://blog.csdn.net/hsd2012';functioncheckStr1($str,$str2){return strstr1($str,$str2)?true:false;}echo checkStr($str,'csdn');

解法二:使用正則

因?yàn)槲覀冎恍枰袛嗍欠翊嬖诩纯桑赃x擇preg_match啥辨。

$str='http://blog.csdn.net/hsd2012';$pattern='/csdn/';functioncheckStr2($str,$str2){return preg_match($str2,$str)?true:false;}echo checkStr2($str,$pattern);

實(shí)例2(考察單詞定界符

判斷字符串”I am a good boy”中是否包含單詞go

首先判斷是單詞涡匀,而不是字符串,因此比較的時(shí)候委可,需要比較是否包含’ go ‘渊跋,即在字符串go前后有一個(gè)空格。

解析:如果使用非正則比較着倾,只需要調(diào)用上面的checkStr1()函數(shù)即可拾酝,注意,第二個(gè)參數(shù)前后要加一個(gè)空格,即’ go ‘卡者。如果使用正則蒿囤,

我們可以考慮使用單詞定界符\b,那么$pattern=’/\bgo\b/’;然后調(diào)用checkStr2函數(shù)即可.

例3(考察反向引用)

判斷字符串”I am a good boy”中是否包含3個(gè)相同的字母

解析:此時(shí)崇决,如果我們不使用正則材诽,將會(huì)很難判斷,因?yàn)樽帜柑嗔撕闵担覀儾豢赡苋⑺凶帜阜謩e與該字符串比較脸侥,那樣工作量也比較大。這時(shí)候涉及到了正在的反向引用盈厘。在php正則表達(dá)式中睁枕,通過(guò)\n,來(lái)表示第n次匹配到的結(jié)果沸手。如\5代表第五次匹配到的結(jié)果外遇。那么本題的$pattern='/(\w).*\1.*\1/';

主要注意的是,在使用反向匹配的時(shí)候都需要使用(),反向匹配時(shí)契吉,匹配()里面出現(xiàn)的字符或字符串跳仿。

php中字符串替換

不使用正則

php中當(dāng)替換字符串的時(shí)候,如果不適用正則捐晶,我們通常使用substr菲语、mb_substr妄辩、str_replace、substr_replace關(guān)于這幾個(gè)函數(shù)區(qū)別如下表谨究。

函數(shù)符功能描述

str_replace(find,replace,string,count)使用一個(gè)字符串替換字符串中的另一些字符恩袱。find 必需泣棋。規(guī)定要查找的值胶哲。replace 必需。規(guī)定替換 find 中的值的值潭辈。string 必需鸯屿。規(guī)定被搜索的字符串。count 可選把敢。一個(gè)變量寄摆,對(duì)替換數(shù)進(jìn)行計(jì)數(shù)。

substr_replace(string,replacement,start,length)把字符串的一部分替換為另一個(gè)字符串修赞。適合用于替換自定位置的字符串婶恼。string 必需。規(guī)定要檢查的字符串柏副。replacement 必需勾邦。規(guī)定要插入的字符串。start 必需割择。規(guī)定在字符串的何處開(kāi)始替換眷篇。

使用正則

如果使用正則替換,php中提供了preg_replace _callback和preg_replace 函數(shù)荔泳,preg_replace 原型如下:

mixed preg_replace ( mixedpattern,mixedreplacement , mixedsubject[,intlimit = -1 [, int &count]])函數(shù)功能描述:在字符串subject中蕉饼,查找pattern,然后使用replacement 去替換,如果有l(wèi)imit則代表限制替換limit次玛歌。pregreplacecallback與pregreplace功能相識(shí)昧港,不同的是pregreplaceback使用一個(gè)回調(diào)函數(shù)callback來(lái)代替replacement.?例1將字符串”hello,中國(guó)”中的hello替換為′你好′;如果不是用正則:str=’hello,中國(guó)’;

str=strreplace(′hello′,′你好′,str)

或是使用str=substrreplace(str,’你好’,0,5)

使用正則

pattern=′/hello/′;str=preg_replace (pattern,′你好′,str);

- 例2

去除字符串”gawwenngeeojjgegop”中連續(xù)相同的字母

$str='gawwenngeeojjgegop';$pattern='/(.)\1/';$str=preg_replace($pattern,'',$str);

解析:當(dāng)然這樣可能會(huì)遇到,當(dāng)?shù)谝淮稳コ酥貜?fù)了字符串后支子,又出來(lái)重復(fù)的字符串创肥。如字符串味’gewwenngeeojjgegop’,針對(duì)這中問(wèn)題,當(dāng)然译荞,這樣的話(huà)瓤的,通過(guò)判斷,繼續(xù)替換下去吞歼。

例3

將字符串中”age13gegep3iorji65k65k”;中出現(xiàn)的連續(xù)兩個(gè)數(shù)字改為第二個(gè)數(shù)字圈膏,如字符串中13被改為3

$str='age13gegep3iorji65k65k';$pattern='/(\d)(\d)/';$str=preg_replace($pattern,'$2',$str);

解析:$n在正則表達(dá)式外使用反向引用。n代表第幾次匹配到的結(jié)果篙骡。

php中字符串分割

不適用正則

php提供了explode函數(shù)去分割字符串稽坤,與其對(duì)應(yīng)的是implode丈甸。關(guān)于explode原型如下:

array explode ( stringdelimiter,stringstring [, int $limit ] )

delimiter:邊界上的分隔字符。

string:輸入的字符串尿褪。

limit:如果設(shè)置了 limit 參數(shù)并且是正數(shù)睦擂,則返回的數(shù)組包含最多 limit 個(gè)元素,而最后那個(gè)元素將包含 string 的剩余部分杖玲。如果 limit 參數(shù)是負(fù)數(shù)顿仇,則返回除了最后的 -limit 個(gè)元素外的所有元素。如果 limit 是 0摆马,則會(huì)被當(dāng)做 1臼闻。

使用正則

關(guān)于通過(guò)正則表達(dá)式進(jìn)行字符串分割,php提供了split囤采、preg_split 函數(shù)述呐。preg_split() 函數(shù),通常是比 split() 更快的替代方案蕉毯。

array preg_split ( stringpattern,stringsubject [, intlimit=?1[,intflags = 0 ]] )

例題

將字符串 ‘http://blog.csdn.net/hsd2012/article/details/51152810‘按照’/’進(jìn)行分割

解法一:

$str='http://blog.csdn.net/hsd2012/article/details/51152810';$str=explode('/',$str);

解法二:

$str='http://blog.csdn.net/hsd2012/article/details/51152810';$pattern='/\//';/*因?yàn)?為特殊字符乓搬,需要轉(zhuǎn)移*/$str=preg_split ($pattern,$str);

php中貪婪匹配與惰性匹配

貪婪匹配:就是匹配盡可能多的字符。

比如代虾,正則表達(dá)式中m.*n进肯,它將匹配最長(zhǎng)以m開(kāi)始,n結(jié)尾的字符串褐着。如果用它來(lái)搜索manmpndegenc的話(huà)坷澡,它將匹配到的字符串是manmpndegen而非man『兀可以這樣想频敛,當(dāng)匹配到m的時(shí)候,它將從后面往前匹配字符n馅扣。

懶惰匹配:就是匹配盡可能少的字符斟赚。

有的時(shí)候闲先,我們需要并不是去貪婪匹配呵燕,而是盡可能少的去匹配。這時(shí)候嚎杨,就需要將其轉(zhuǎn)為惰性匹配蓄喇。怎樣將一個(gè)貪婪匹配轉(zhuǎn)為惰性匹配呢发侵?只需要在其后面添加一個(gè)”?”即可妆偏。如m.*?n將匹配manmpndegenc刃鳄,匹配到的字符串是man。

函數(shù)符描述

*?零次或多次钱骂,但盡可能少的匹配

+?一次或多次叔锐,但盡可能少的匹配

??0次或1次挪鹏,但盡可能少的匹配

{n,}?至少n次,但盡可能少的匹配

{n,m}?n到m次 愉烙,但盡可能少的匹配

php正則表達(dá)式之回溯與固態(tài)分組

回溯

首先我們需要清楚什么是回溯讨盒,回溯就像是在走岔路口,當(dāng)遇到岔路的時(shí)候就先在每個(gè)路口做一個(gè)標(biāo)記步责。如果走了死路返顺,就可以照原路返回,直到遇見(jiàn)之前所做過(guò)的標(biāo)記勺择,標(biāo)記著還未嘗試過(guò)的道路创南。如果那條路也走不能伦忠,可以繼續(xù)返回省核,找到下一個(gè)標(biāo)記,如此重復(fù)昆码,直到找到出路气忠,或者直到完成所有沒(méi)有嘗試過(guò)的路。首先我們看例題

$str='aageacwgewcaw';$pattern='/a\w*c/i';$str=preg_match($pattern,$str);

看到上面的程序赋咽,可能都清楚是什么意思旧噪,就是匹配$str是否包含這樣一個(gè)由”a+0個(gè)或多個(gè)字母+c”不區(qū)分大小寫(xiě)的字符串。但是至于程序怎樣去匹配的呢脓匿?匹配的過(guò)程中淘钟,回溯了多少次呢?

匹配過(guò)程接下來(lái)操作描述

‘a(chǎn)\w*c’中a匹配到’aageacwgewcaw’中第一個(gè)字符a\w進(jìn)行下一個(gè)字符匹配

因?yàn)閈w是貪婪匹配陪毡,會(huì)一直匹配到’aageacwgewcaw’中最后一個(gè)字符wc進(jìn)行下一個(gè)字符匹配時(shí)

‘a(chǎn)\w*c’中c發(fā)現(xiàn)沒(méi)有可以匹配的于是\w匹配進(jìn)行第一次回溯米母,匹配到倒數(shù)第二個(gè)字符a

‘a(chǎn)\w*c’中c發(fā)現(xiàn)還是沒(méi)有可以匹配的于是\w匹配進(jìn)行第二次回溯,匹配到倒數(shù)第三個(gè)字符c

‘a(chǎn)\w*c’中c匹配成功匹配結(jié)束返回結(jié)果

現(xiàn)在毡琉,如果我們將pattern改為pattern=’/a\w*?c/i’;又會(huì)回溯多少次呢铁瞒?正確答案是回溯四次。

固態(tài)分組

固態(tài)分組桅滋,目的就是減少回溯次數(shù)慧耍, 使用(?>…)括號(hào)中的匹配時(shí)如果產(chǎn)生了備選狀態(tài),那么一旦離開(kāi)括號(hào)便會(huì)被立即 引擎拋棄掉丐谋。舉個(gè)典型的例子如: ‘\w+:’這個(gè)表達(dá)式在進(jìn)行匹配時(shí)的流程是這樣的芍碧,會(huì)優(yōu)先去匹配所有的符合\w的字符,假如字符串的末尾沒(méi)有’:’号俐,即匹配沒(méi)有找到冒號(hào)泌豆,此時(shí)觸發(fā)回溯機(jī)制,他會(huì)迫使前面的\w+釋放字符萧落,并且在交還的字符中重新嘗試與’:’作比對(duì)践美。但是問(wèn)題出現(xiàn)在這里: \w是不包含冒號(hào)的洗贰,顯然無(wú)論如何都不會(huì)匹配成功,可是依照回溯機(jī)制陨倡,引擎還是得硬著頭皮往前找敛滋,這就是對(duì)資源的浪費(fèi)。所以我們就需要避免這種回溯兴革,對(duì)此的方法就是將前面匹配到的內(nèi)容固化绎晃,不令其存儲(chǔ)備用狀態(tài)!杂曲,那么引擎就會(huì)因?yàn)闆](méi)有備用狀態(tài)可用而只得結(jié)束匹配過(guò)程庶艾。大大減少回溯的次數(shù)。

如下代碼擎勘,就不會(huì)進(jìn)行回溯:

$str='nihaoaheloo';$pattern='/(?>\w+):/';$rs=preg_match($pattern,$str);

當(dāng)然有的時(shí)候咱揍,又需慎用固態(tài)分組,如下,我要檢查$str中是否包含以a結(jié)尾的字符串棚饵,很明顯是包含的煤裙,但是因?yàn)槭褂昧斯虘B(tài)分組,反而達(dá)不到我們想要的效果

$str='nihaoahelaa';$pattern1='/(?>\w+)a/';$pattern2='/\w+a/';$rs=preg_match($pattern1,$str);//0$rs=preg_match($pattern2,$str);//1

php中其他常用字符串操作函數(shù)

字符串截取截取

string substr ( stringstring,intstart [, intlength])stringmbsubstr(stringstr , intstart[,intlength = NULL [, string $encoding = mb_internal_encoding() ]] )

字符串中大小寫(xiě)轉(zhuǎn)換

strtoupper

strtolower

ucfirst

ucwords

字符串比較

-strcmp噪漾、strcasecmp硼砰、strnatcmp

字符串過(guò)濾

字符串翻轉(zhuǎn)

strrev($str);

字符串隨機(jī)排序

string str_shuffle ( string $str )

補(bǔ)充

怎樣進(jìn)行郵箱匹配,url匹配欣硼,手機(jī)匹配

使用preg_match函數(shù)進(jìn)行匹配题翰,以下內(nèi)容從TP中復(fù)制而來(lái)。

郵箱驗(yàn)證

pattern=′/\w+([?+.]\w+)?@\w+([?.]\w+)?\.\w+([?.]\w+)?/’;

url匹配

pattern='/^http(s?):\/\/(?:[A-za-z0-9-]+\.)+[A-za-z]{2,4}(:\d+)?(?:[\/\?#][\/=\?%\-&~`@[\]\':+!\.#\w]*)?/’;

手機(jī)驗(yàn)證

pattern=′/1[3458]\d10/’;

php中正則的優(yōu)缺點(diǎn)

php中正則在某些時(shí)候诈胜,能幫我們解決php函數(shù)很多困難的匹配或是替換豹障。然后php中正則的效率,往往是我們需要考慮的耘斩,所以在某些時(shí)候沼填,能不用正則還是盡量不去用它,除非括授,某些場(chǎng)合必須用到坞笙,或是我們能夠有效減少其回溯次數(shù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末荚虚,一起剝皮案震驚了整個(gè)濱河市薛夜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌版述,老刑警劉巖梯澜,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異渴析,居然都是意外死亡晚伙,警方通過(guò)查閱死者的電腦和手機(jī)吮龄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)咆疗,“玉大人漓帚,你說(shuō)我怎么就攤上這事∥绱牛” “怎么了尝抖?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)迅皇。 經(jīng)常有香客問(wèn)我昧辽,道長(zhǎng),這世上最難降的妖魔是什么登颓? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任搅荞,我火速辦了婚禮,結(jié)果婚禮上挺据,老公的妹妹穿的比我還像新娘取具。我一直安慰自己,他們只是感情好扁耐,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著产阱,像睡著了一般婉称。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上构蹬,一...
    開(kāi)封第一講書(shū)人閱讀 49,031評(píng)論 1 285
  • 那天王暗,我揣著相機(jī)與錄音,去河邊找鬼庄敛。 笑死俗壹,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的藻烤。 我是一名探鬼主播绷雏,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼怖亭!你這毒婦竟也來(lái)了涎显?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤兴猩,失蹤者是張志新(化名)和其女友劉穎期吓,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體倾芝,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡讨勤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年箭跳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片潭千。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡衅码,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出脊岳,到底是詐尸還是另有隱情逝段,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布割捅,位于F島的核電站奶躯,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏亿驾。R本人自食惡果不足惜嘹黔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望莫瞬。 院中可真熱鬧儡蔓,春花似錦、人聲如沸疼邀。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)旁振。三九已至获询,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拐袜,已是汗流浹背吉嚣。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蹬铺,地道東北人尝哆。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像甜攀,于是被迫代替她去往敵國(guó)和親秋泄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容