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

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

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

2024-07-16 17:44:53
字體:
來源:轉載
供稿:網友

  本文所有的內容都來自網絡,加上一些個人的理解,不保證正確性,歡迎批評指正
  說起正則表達式(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);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武城县| 浠水县| 宁乡县| 大关县| 苗栗县| 阳山县| 宁河县| 泽普县| 铁岭市| 黔西县| 浦城县| 江口县| 深圳市| 余江县| 株洲县| 富阳市| 广安市| 崇信县| 亳州市| 茌平县| 三明市| 隆林| 夏邑县| 磴口县| 封丘县| 芮城县| 新化县| 措勤县| 平顺县| 饶平县| 沿河| 蒙城县| 东丰县| 铜鼓县| 旬阳县| 阜城县| 和田县| 盐亭县| 乐至县| 浦城县| 大埔县|