国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 應用 > 軟件技巧 > 正文

在C/C++語言中使用正則表達式

2024-07-15 01:59:26
字體:
來源:轉載
供稿:網友

  本文所有的內容都來自網絡,加上一些個人的理解,不保證正確性,歡迎批評指正
  說起正則表達式(Regular Expression),也許有的朋友天天都在使用,比如grep、vim、sed、awk,只是可能對這個名詞不大熟悉。正則表達式一般簡寫為regex或者regexp,甚至是RE。關于正則表達式的介紹,有很多的文章,用搜索引擎查找就可以找到很不錯的使用說明。但是在C/C++語言中如何去使用,相應的介紹比較缺乏。大多數C標準庫自帶regex,可以通過/usr/include/regex.h去看,或者man regex看使用說明。perl,php等語言更是提供了功能強大的正則表達式,最著名的C語言正則表達式庫為PCRE(Perl Compatible Regular Expression)。本文主要對regex和pcre的使用做一點入門介紹。
  1、regex
  regex的使用非常簡單,只要看一下示例代碼1就能明白(示例代碼是從“GNU C 規則表達式入門”這篇文章里摘取出來的,是否為原始出處就
  不得而知了)。
  CODE:#include <stdio.h>
  #include <string.h>
  #include <regex.h>
  #define SUBSLEN 10              /* 匹配子串的數量 */
  #define EBUFLEN 128          /* 錯誤消息buffer長度 */
  #define BUFLEN 1024          /* 匹配到的字符串buffer長度 */
  int main()
  {
  size_t       len;
  regex_t       re;      /* 存儲編譯好的正則表達式,正則表達式在使用之前要經過編譯 */
  regmatch_t    subs [SUBSLEN]; /* 存儲匹配到的字符串位置 */
  char          matched [BUFLEN];     /* 存儲匹配到的字符串 */
  char          errbuf [EBUFLEN]; /* 存儲錯誤消息 */
  int          err, i;
  char          src    [] = "111 <title>Hello World</title> 222"; /* 源字符串 */
  char          pattern [] = "<title>(.*)</title>"; /* pattern字符串 */
  printf("String : %s/n", src);
  printf("Pattern: /"%s/"/n", pattern);
  /* 編譯正則表達式 */
  err = regcomp(&re, pattern, REG_EXTENDED);
  if (err) {
  len = regerror(err, &re, errbuf, sizeof(errbuf));
  printf("error: regcomp: %s/n", errbuf);
  return 1;
  }
  printf("Total has subexpression: %d/n", re.re_nsub);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 合肥市| 吉木萨尔县| 南京市| 台前县| 迭部县| 莆田市| 延安市| 宁都县| 介休市| 海安县| 馆陶县| 金堂县| 太和县| 仁布县| 谷城县| 灌阳县| 涞源县| 梁平县| 都兰县| 平乐县| 泉州市| 钟祥市| 盈江县| 古蔺县| 婺源县| 嵊州市| 阿克苏市| 讷河市| 扎囊县| 广宁县| 石景山区| 周口市| 华宁县| 泾川县| 宁晋县| 武隆县| 双牌县| 北川| 康乐县| 时尚| 彩票|