⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 posix_regex_test.c

📁 在unix下使用正则表达式
💻 C
字号:
#include <stdio.h>#include <regex.h>/* pattern buffer 的初始化程序 */voidinit_pattern_buffer (pattern_buffer)     regex_t *pattern_buffer;{  pattern_buffer->buffer = NULL;  pattern_buffer->allocated = 0;  pattern_buffer->used = 0;  pattern_buffer->fastmap = NULL;  pattern_buffer->fastmap_accurate = 0;  pattern_buffer->translate = NULL;  pattern_buffer->can_be_null = 0;  pattern_buffer->re_nsub = 0;  pattern_buffer->no_sub = 0;  pattern_buffer->not_bol = 0;  pattern_buffer->not_eol = 0;}inttest_posix (pattern_buffer, regex, text)     regex_t *pattern_buffer;     char *regex;     char *text;{  int cflags, eflag;  int n;  int id;  char buf[256];  /* 进行 正则表达式 pattern buffer 的初始化 */  init_pattern_buffer (pattern_buffer);  /* 设定 正则表达式 的语法定义 */  cflags = REG_NEWLINE | REG_EXTENDED;  /* 编译 正则表达式 */  id = regcomp (pattern_buffer, regex, cflags);  /* 侦测是否有错误的发生 */  if (id != 0)    {      printf (" error on compiling regex. code = %d\n", id);      regerror (id, pattern_buffer, buf, sizeof (buf));      printf (" error : %s\n", buf);      exit (1);    }  /* 不设定执行进行寻找的特别功能 */  eflag = 0;  /* 在字符串 text 中进行寻找,并列出其返回值 */  n = regexec (pattern_buffer, text, 0, 0, eflag);  if (n == 0)    {      printf (" regexec match string = %s\n", text);    }  return n;}main (argc, argv)     int argc;     char **argv;{  FILE *fp;  char line[1024];  regex_t pattern_buffer;  /* 检查参数的个数 */  if (argc != 3)    {      printf ("Usage: %s pattern file\n", argv[0]);      exit (1);    }  /* 打开测试的文件 */  fp = fopen (argv[2], "r");  if (fp == NULL)    {      fprintf (stderr, "Can't open %s.\n", argv[2]);      exit (1);    }  /* 读取测试文件中的字符串并进行 POSIX 接口 Regex 程序的测试 */  while (fgets (line, 1024, fp) != NULL)    {      test_posix (&pattern_buffer, argv[1], line);    }  /* 释放正则表达式 pattern buffer */  regfree (&pattern_buffer);  /* 关闭测试的文件 */  fclose (fp);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -