日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

PCRE 简介

發布時間:2023/12/20 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PCRE 简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

介紹

PCRE (Perl Compatible Regular Expressions) 是一個用C語言編寫的正則表達式函數庫。本文簡要介紹PCRE的編譯和使用方法。

編譯

從PCRE官網下載后,解壓(本人下的版本為pcre2-10.21)。仔細閱讀 README 和 NON-AUTOTOOLS-BUILD,里面介紹了很多編譯的方法。由于本人需要在VS下開發,因此選擇CMake編譯。
1. 打開 VS開發人員命令提示符,切換到CMake\bin\下,運行cmake-gui.exe
2. 設置源文件目錄為PCRE的解壓目錄。
3. 在PCRE的解壓目錄下創建build文件夾,將該文件夾設置為編譯目錄。
4. 點擊Configure按鈕,會彈出選擇編譯器的提示框,選擇VS編譯器的版本,點擊Finish按鈕。
5. 配置成功后,會在配置列表中顯示所有的配置項,這里按照實際需要修改。本人只修改了CMAKE_INSTALL_PREFIX,即安裝目錄,其他保持默認。若修改了配置項,則需要重新點擊Configure以使之生效。
6. 點擊Generate按鈕,成功后會在build下生成所需要的VS工程文件和解決方案文件。
7. VS打開解決方案文件,解決方案配置為Release版本,編譯工程ALL_BUILD,則會在build\Release下生成庫文件。
8. 編譯工程INSTALL,則會在CMAKE_INSTALL_PREFIX指定的目錄下生成頭文件、庫文件和相應的手冊。在share\doc下面會生成html形式的API說明文檔。

使用

  • 建立工程的時候需要配置字符長度,例如定義宏 PCRE2_CODE_UNIT_WIDTH=8
  • 如果使用靜態庫,需要定義宏 PCRE2_STATIC
  • 這里僅列出簡單的使用說明,具體的API使用方法詳見API說明文檔。
#include "pcre2.h" #include <string> #include <iostream>int main(void) {const std::string pattern{ "\\d{3,5}" };int error_code = 0;PCRE2_SIZE error_offset = 0;pcre2_code *code = pcre2_compile(reinterpret_cast<PCRE2_SPTR>(pattern.c_str()), PCRE2_ZERO_TERMINATED, 0, &error_code, &error_offset, NULL);if (code == NULL){return -1;}const std::string subject{ "tel1:1234;tel2:3456;tel3:5678" };pcre2_match_data *match_data = pcre2_match_data_create_from_pattern(code, NULL);int rc = 0;int start_offset = 0;unsigned int match_index = 0;while ((rc = pcre2_match(code, reinterpret_cast<PCRE2_SPTR>(subject.c_str()), subject.length(), start_offset, 0, match_data, NULL)) > 0){PCRE2_SIZE *ovector = pcre2_get_ovector_pointer(match_data);int i = 0;for (i = 0; i < rc; i++){std::cout << "match " << ++match_index << ": "<< std::string(subject.c_str() + ovector[2*i], ovector[2*i + 1] - ovector[2*i]) << std::endl;}start_offset = ovector[2*(i-1) + 1];}return 0; }

總結

以上是生活随笔為你收集整理的PCRE 简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。