+ -
当前位置:首页 → 问答吧 → 日志分析与字符串处理

日志分析与字符串处理

时间:2011-06-17

来源:互联网

大家好!
我想用python解决这样一个问题:

查找文档(支持的类型可以多个,比如文本、word等等)中A表达式之后是否直接跟着B表达式
比如
A = name
B = zhaojun
那么
name zhaojun
name:zhaojun
name/zhaojun
符合定义
name zj
name:zj
不符合定义

A与B的连接符号可自由定义

因为我不懂正则表达式,不知道用正则表达式是否能否更好的解决问题?

作者: zhaojun1987   发布时间: 2011-06-17

可用 name.zhaojun 中间一点代表任何一个字符。

作者: pytoon   发布时间: 2011-06-17

import re

f = open('test.txt',r).readlines()
patt1 = re.compile('^A = .*')
patt2 = re.compile('^B = .*')

for i in range(len(f)):
    if re.match(patt1,f[i]) and re.match(patt2,f[i+1]):
        xxxxxxx

文件大了,readlines()效率不高,象偶这样的菜只能想到这样的法子,高手指点

作者: zhujinzz   发布时间: 2011-06-17

因为正则表达式有相通的地方,所以给个Perl的仅供参考~
  1. use strict;
  2. use warnings;

  3. my $stra='name';
  4. my $strb='zhaojun';

  5. while (<DATA>) {
  6. if ( /^$stra[^\w]$strb$/ ) {
  7. print "Test ok:$_";
  8. } else {
  9. print "Test fail:$_";
  10. }
  11. }

  12. __DATA__
  13. name zhaojun
  14. name:zhaojun
  15. name/zhaojun
  16. name zj
  17. name:zj
复制代码

作者: x9x9   发布时间: 2011-06-17