• <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

            厚積薄發(fā). 勤為槳,思為帆

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

            1.正則表達式筆記

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

                           使用范例:

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

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

            \b         匹配以英文字母,數(shù)字為邊界的字符串
            \d         匹配一個數(shù)字的字符,和 [0-9] 語法一樣
            \w        英文字母或數(shù)字的字符串,和 [a-zA-Z0-9] 語法一樣
            \s         空格,和 [\n\t\r\f] 語法一樣
            \B         匹配不以英文字母,數(shù)值為邊界的字符串
            \D         非數(shù)字,其他同 \d
            \S         非空格,和 [^\n\t\r\f] 語法一樣
            \W        非英文字母或數(shù)字的字符串,和 [^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:根據(jù)后綴匹配而已。和$區(qū)別在于$是行尾匹配。
                          如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)匹配三位數(shù)字,而且這三位數(shù)字的后面不能是數(shù)字。 也可以是只有前3位數(shù)字。比較\d{3}(^\d)有區(qū)別.

            (?<!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 閱讀(1259) 評論(0)  編輯 收藏 引用
            久久久精品久久久久特色影视| 久久精品麻豆日日躁夜夜躁| 俺来也俺去啦久久综合网| 婷婷久久综合| 久久只有这里有精品4| 色欲综合久久躁天天躁| 亚洲人成网站999久久久综合| 久久精品成人影院| 要久久爱在线免费观看| 久久人人爽人人爽人人片AV不 | 久久久久国产精品| 国产美女久久精品香蕉69| 好属妞这里只有精品久久| 色综合久久最新中文字幕| 久久精品成人欧美大片| 久久午夜无码鲁丝片秋霞| 亚洲AV无码久久| 99热成人精品免费久久| 亚洲&#228;v永久无码精品天堂久久 | 国产精品久久久久久久久免费| 青青青伊人色综合久久| 欧美午夜A∨大片久久 | 99久久国产亚洲高清观看2024 | 中文字幕热久久久久久久| 久久婷婷五月综合97色| 精品久久久久久国产免费了| 人妻精品久久久久中文字幕| 亚洲香蕉网久久综合影视 | 蜜臀av性久久久久蜜臀aⅴ麻豆 | 熟妇人妻久久中文字幕| 久久99精品久久久久久噜噜| 久久强奷乱码老熟女网站| 国产99久久精品一区二区| 深夜久久AAAAA级毛片免费看| 无码人妻少妇久久中文字幕蜜桃| 久久综合狠狠色综合伊人| 久久人人爽人人爽人人片av麻烦 | 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 老司机国内精品久久久久| 久久久久久久波多野结衣高潮 | 99久久精品国产综合一区|