• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            kenlistian

            厚積薄發. 勤為槳,思為帆

               :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理 ::
              73 隨筆 :: 4 文章 :: 22 評論 :: 0 Trackbacks

            1.正則表達式筆記

            必須記住的幾個符號和組合
            .        匹配除換行符以外的所有字符一次
            ?        匹配 0 次或一次
            *        匹配 0 次或多次
            +        匹配 1 次或多次

                           使用范例:

                            x?        匹配 0 次或一次 x 字符串
                            x*        匹配 0 次或多次 x 字符串,但匹配可能的最少次數,*必須跟隨一個字符后面,不能單獨出現
                            x+        匹配 1 次或多次 x 字符串,但匹配可能的最少次數,+必須跟隨一個字符后面,不能單獨出現
                            .*        匹配 0 次或一次的任何字符
                            .+        匹配 1 次或多次的任何字符

            界定范圍和位置
            ^        匹配字符開頭的字符
            $         匹配字符結尾的字符
            {m}          匹配剛好是 m 個 的指定字符串
            {m,n}        匹配在 m個 以上 n個 以下 的指定字符串
            {m,}          匹配 m個 以上 的指定字符串
            []           匹配符合 [] 內的字符
            [^]         匹配不符合 [] 內的字符
            [0-9]         匹配所有數字字符
            [a-z]        匹配所有小寫字母字符
            [^0-9]        匹配所有非數字字符
            [^a-z]        匹配所有非小寫字母字符

            \b         匹配以英文字母,數字為邊界的字符串
            \d         匹配一個數字的字符,和 [0-9] 語法一樣
            \w        英文字母或數字的字符串,和 [a-zA-Z0-9] 語法一樣
            \s         空格,和 [\n\t\r\f] 語法一樣
            \B         匹配不以英文字母,數值為邊界的字符串
            \D         非數字,其他同 \d
            \S         非空格,和 [^\n\t\r\f] 語法一樣
            \W        非英文字母或數字的字符串,和 [^a-zA-Z0-9] 語法一樣

            a|b|c       匹配符合a字符 或是b字符 或是c字符 的字符串
            abc         匹配含有 abc 的字符串
            轉義:      使用\ 來取消元字符的特殊意義。包括 . * + \  [ ] { } ( ) ^ $


            ?的多重定義-懶惰限定符
            *?    重復任意次,但盡可能少重復
            +?    重復1次或更多次,但盡可能少重復
            ??    重復0次或1次,但盡可能少重復
            {n,m}?    重復n到m次,但盡可能少重復
            {n,}?    重復n次以上,但盡可能少重復


            斷言匹配: 有4個

            (?=exp)   零寬先行斷言,它匹配文本中的某些位置,這些位置的后面能匹配給定的后綴exp。
                         比如/b/w+(?=ing/b),匹配以ing結尾的單詞的前面部分(除了ing以外的部分),
                          zc:根據后綴匹配而已。和$區別在于$是行尾匹配。
                          如I'm singing while you're dancing.  它會匹配sing和danc。

            (?<=exp)  零寬后行斷言,它匹配文本中的某些位置,這些位置的前面能給定的前綴匹配exp。
                           如(?<=\bre)\w+\b會匹配以re開頭的單詞的后半部分(除了re以外的部分),
                           zc:匹配前綴。
                            例如在查找reading a book時,它匹配ading。

            (?!exp)    零寬負向先行斷言。會匹配后綴exp不存在的位置。
                          zc: 若不是exp或者沒有則匹配,用^在于存在一個不匹配某個exp的其他字符,而!保證不匹配exp外可以不跟任何字符。
                         
            如:\d{3}(?!\d)匹配三位數字,而且這三位數字的后面不能是數字。 也可以是只有前3位數字。比較\d{3}(^\d)有區別.

            (?<!exp)   零寬負向后行斷言。查找前綴exp不存在的位置.

            條件匹配: (zc:這個復雜,但也不復雜。屬于perl中的擴展部分,略)

            Conditional Expressions

            (?(condition)yes-pattern|no-pattern)
               attempts to match yes-pattern if the condition is true, otherwise attempts to match no-pattern.

            (?(condition)yes-pattern) attempts to match yes-pattern if the condition is true, otherwise fails.

            condition may be either a forward lookahead assert, or the index of a marked sub-expression
            (the condition becomes true if the sub-expression has been matched).

             

             

            2. boost中分有match,search,replace,在vc中,其正則表達式以上\表示需要雙反斜杠表示。其中在

            match是匹配整個句子,在實際應用中,必須是構造整個句子的正則表達,而在一篇文章匹配的話,以search用的

            比較多,如下見一個片段。沒有用到std,可見用boost在匹配查詢時,其比較麻煩:

            void test123()
            {      
                CString str = "singing while youre dancing.";
                regex ee_all("\\b\\w+\\b");
                cmatch result;
                CString ret;
                while(regex_search(str, result, ee_all,match_perl)){           
                    for(int i=0; i < result.size(); i++){           
                        ret = result[i].str().c_str();
                        AfxMessageBox(ret);               
                        str = result[i].second;
                    }           
                }   
            }

            posted on 2008-04-29 11:26 kenlistian 閱讀(1253) 評論(0)  編輯 收藏 引用
            亚洲国产天堂久久久久久| 国产亚洲美女精品久久久久狼| 久久国产精品99国产精| 国产精品热久久毛片| 伊人久久大香线焦AV综合影院| 久久久久国产精品熟女影院 | 狠狠色丁香久久婷婷综合_中| 久久ww精品w免费人成| 国产精久久一区二区三区| 久久精品中文字幕一区| 中文字幕精品久久| 狠色狠色狠狠色综合久久| 中文无码久久精品| 久久久国产精品| 精品久久久无码中文字幕| 狠狠色丁香婷综合久久| 99久久夜色精品国产网站| 久久久久国产精品三级网| 久久99国产精品久久99| 伊人久久综合无码成人网 | 久久综合九色综合精品| 国产成人精品久久一区二区三区| 99蜜桃臀久久久欧美精品网站 | AV无码久久久久不卡蜜桃| 精品久久久无码中文字幕| 国产精品美女久久久| 久久久久久久久久久久中文字幕| 国产精品久久久久久久人人看| 国产精品美女久久久网AV| 一本大道久久a久久精品综合 | 亚洲狠狠婷婷综合久久久久| 久久久久亚洲AV片无码下载蜜桃| 老司机午夜网站国内精品久久久久久久久 | 久久精品国产黑森林| 中文字幕久久欲求不满| 精品久久久久中文字幕日本| 18岁日韩内射颜射午夜久久成人| 久久不见久久见免费视频7| 好属妞这里只有精品久久| 精品国产VA久久久久久久冰 | 久久久精品久久久久影院|