VC使用正規表示式

2021-09-05 21:30:28 字數 818 閱讀 4336

vc中使用正規表示式可以使用boost等第三方庫,也可使用微軟提供的atl中的正規表示式庫或greta庫,還有一種就是呼叫

vbscript.dll來完成。

第一種網上的資料很多,就不多講了,我也不想在自己的工程中加入太多的外來**。第三種在文章《vc呼叫vbscript.dll使用其正規表示式庫》有介紹,我就不多講了。我這裡要講的是第二種,即利用atl中提供的正規表示式庫。greta庫我也用了一下,但是結果很令人苦惱,所以我就沒有用了。

首先,在工程中加入標頭檔案#include ,然後宣告乙個catlregexp<> 類代表正規表示式,通過其parse()傳入正規表示式**。值得提一下的是,該正規表示式的語法與perl相容,但分組用的是{}。下面通過乙個例子來說明。

catlregexp

<>

reurl;

reparseerror status 

=reurl.parse(_t(

"^:$

"));

if(reparse_error_ok 

!=status)

catlrematchcontext

<>

mcurl;if(

!reurl.match(_t(

"23:56"),

&mcurl))

for(uint ngroupindex =0

; ngroupindex 

<

mcurl.m_unumgroups;

++ngroupindex)

:$」,有連個組(group)。注意,我這裡專案使用的是unicode,所以其中用到的是unicode的字串處理函式。

使用正規表示式

如果原來沒有使用過正規表示式,那麼可能對這個術語和概念會不太熟悉。不過,它們並不是您想象的那麼新奇。請回想一下在硬碟上是如何查詢檔案的。您肯定會使用 和 字元來幫助查詢您正尋找的檔案。字元匹配檔名中的單個字元,而 則匹配乙個或多個字元。乙個如 data?dat 的模式可以找到下述檔案 data1.d...

使用正規表示式

本文節選自 並有稍微修正。使用正規表示式 您可以使用正規表示式做很多事情。在以下的列表中,您可以找到一些最普通 最常用的正規表示式的例子。表示文字串必須在一行的開頭。所以,當查詢行的開頭只為 hosts 的行,可以使用命令 grep ls hosts 代表了一行的結尾。所以,當查詢行的結尾只為 ho...

正規表示式使用

1 靜態match方法 使用靜態match方法,可以得到源中第乙個匹配模式的連續子串。2 靜態的matches方法 這個方法的過載形式同靜態的match方法,返回乙個matchcollection,表示輸入中,匹配模式的匹配的集合。3 靜態的ismatch方法 此方法返回乙個bool,過載形式同靜態...