国产探花免费观看_亚洲丰满少妇自慰呻吟_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);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 拜泉县| 辉县市| 嘉禾县| 灵宝市| 吉林省| 韩城市| 文登市| 兴宁市| 长泰县| 楚雄市| 庄河市| 武山县| 申扎县| 来宾市| 商城县| 南康市| 凤庆县| 潍坊市| 安徽省| 安吉县| 伊金霍洛旗| 上犹县| 廊坊市| 壶关县| 巴马| 元谋县| 大同县| 子长县| 榆中县| 桃源县| 丽水市| 兰州市| 侯马市| 广汉市| 榕江县| 清苑县| 广德县| 玉屏| 西和县| 怀集县| 通化市|