免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2428 | 回复: 3
打印 上一主题 下一主题

HELP!急!!!!!!hp-ux上匹配制表符的正则表达式是什么? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-09-23 14:56 |只看该作者 |倒序浏览
小弟最近在HP-UX上开发一套程序,需要将字符串中的每一项用正则表达式匹配出来,但是现在串中有制表符
使用\t不好用,不知道是不是和平台有关.  
请高手们作答!!!!谢谢!!!!!

字符串例如
[111111      2005-09-18 12-08-22      testRegx]
中间有多个空格或多个制表符   正则应该怎么写? 比喻我需要将testRegx匹配出来

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
2 [报告]
发表于 2006-09-23 18:01 |只看该作者
不会写,就学着写,很简单的

论坛徽章:
0
3 [报告]
发表于 2006-09-24 00:41 |只看该作者

  1. /*
  2. author:Minuit
  3. Date:Tue 04 Jul 2006 05:08:05 AM EDT
  4. description: RE
  5. */
  6. #include<stdio.h>
  7. #include<stdlib.h>
  8. #include<string.h>
  9. #include<regex.h>
  10. #define nmatch 5
  11. #define BUFSIZE 80
  12. void retest(char *string)
  13. {
  14.         regex_t preg;
  15.         char *regex="[\\ ][a-zA-Z]+\\>";  //正则
  16.         regmatch_t pmatch[nmatch];
  17.         unsigned int i,len;
  18.         bzero(&preg,sizeof(regex_t));
  19.         if(regcomp(&preg,regex,REG_EXTENDED)==0)
  20.           {
  21.                 if(regexec(&preg,string,nmatch,pmatch,0)==0)
  22.                    {
  23.                        for(i=0;i<nmatch;i++)
  24.                           {
  25.                                 if(pmatch[i].rm_so==-1)continue;
  26.                                 len=(pmatch[i].rm_eo-pmatch[i].rm_so);
  27.                                 printf("匹配结果:%.*s\n",len,(string+pmatch[i].rm_so));
  28.                           }
  29.                   }
  30.                 regfree(&preg);
  31.           }
  32. }

  33. int main()
  34. {
  35.         FILE *fp;
  36.         char buf[BUFSIZE];
  37.         if((fp=fopen("txt","r"))==NULL)
  38.           {
  39.                 fprintf(stderr,"不能打开文件\n");
  40.                 exit(1);
  41.           }
  42.         while(fgets(buf,BUFSIZE,fp))
  43.           {
  44.                 printf("%s",buf);
  45.                 retest(buf);
  46.           }
  47.          fclose(fp);
  48.          return 0;
  49. }
复制代码

文本

  1. [111111      2005-09-18 12-0i-22      testRegx]
  2. [132411      2005-09-18 12-18-22      erfogfdx]
  3. [111df1      2005-09-18 12-08-22      fsffRegx]if
  4. [111111      2005-09-18 12-08-22      fdsfRegx]ix
  5. [111111      2005-09-18 12-08-22      idfsRegx]ixxx
  6. [111111      2005-09-18 12-08-22      idfsReg]xxxx
复制代码

结果

  1. minuit@suse:~/c++> ./regex
  2. [111111      2005-09-18 12-0i-22      testRegx]
  3. 匹配结果: testRegx
  4. [132411      2005-09-18 12-18-22      erfogfdx]
  5. 匹配结果: erfogfdx
  6. [111df1      2005-09-18 12-08-22      fsffRegx]if
  7. 匹配结果: fsffRegx
  8. [111111      2005-09-18 12-08-22      fdsfRegx]ix
  9. 匹配结果: fdsfRegx
  10. [111111      2005-09-18 12-08-22      idfsRegx]ixxx
  11. 匹配结果: idfsRegx
  12. [111111      2005-09-18 12-08-22      idfsReg]xxxx
  13. 匹配结果: idfsReg
  14. minuit@suse:~/c++>
复制代码


不知道HP上面有没有这个正则头文件
以前写的就改了一下正则将就用

论坛徽章:
0
4 [报告]
发表于 2006-09-26 15:41 |只看该作者
谢谢了,但是现在我的问题是在hp-ux上制表符怎么匹配  我用过 \t ,\s 都不好用,请问应该怎么用?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP