python 如何截取不定长字符串

像我这么帅的只有一个 2012-08-06 02:16:46
如有时error=123,有时error=123455,error=1255,如何把这种随机出现的打印都截取下来.
...全文
938 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
ppj520 2012-08-18
  • 打赏
  • 举报
回复
4楼的,非常精炼。

大家水平,都很高啊。
kilimanjaroup 2012-08-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

error后面数字是不固定长度的,有时候是123,有时候是12345,有时候是别的长度的,我要把这个错误码截取出来,如果是固定长度的好办,现在这个是不固定长度的,至少有3中长度,123,1234,12345,都是随机出现的。
[/Quote]

二楼三楼都是高手,已经说得很清楚了,不知道楼主在想些什么....
JiMoKuangXiangQu 2012-08-11
  • 打赏
  • 举报
回复
大家都很厉害!
tim_spac_126 2012-08-06
  • 打赏
  • 举报
回复
or
>>> msg = 'something Lost error=XXXX,with some message'
>>> print msg[msg.index('error='):]
error=XXXX,with some message
>>>
tim_spac_126 2012-08-06
  • 打赏
  • 举报
回复
$ python
Python 2.7.2+ (default, Oct 4 2011, 20:03:08)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> patt = re.compile(r'.*(error\s?=.*)')
>>> m = patt.match('something Lost error=XXXX,with some message')
>>> if m:
... print m.groups(0)
...
('error=XXXX,with some message',)
>>>
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
something Lost error=XXXX
是这种形式出现的
只是XXXX不确定,
我知道error 的位置:
f=open(test.txt,'r')
buf=f.read()
str1=buf
f.close()
str2='error'
n=str1.find(str2)

我想做的是从n位置取字符串到该行行尾,就可以全部取到了。
[/Quote]

xxxx的长度不确定。
  • 打赏
  • 举报
回复
something Lost error=XXXX
是这种形式出现的
只是XXXX不确定,
我知道error 的位置:
f=open(test.txt,'r')
buf=f.read()
str1=buf
f.close()
str2='error'
n=str1.find(str2)

我想做的是从n位置取字符串到该行行尾,就可以全部取到了。
誓雪 2012-08-06
  • 打赏
  • 举报
回复

四楼的朋友:
a = "error = 1234";
print(a[a.index('=')+1:].strip());


很简单,也很使用!

二楼的朋友:
用的是模块!看得出很用心!赞一下!
libralibra 2012-08-06
  • 打赏
  • 举报
回复
你还得知道error之前和那些数字之后是什么字符,就可以用正则表达式了
如果错误代码只有3,4,5三种长度,就是\d{3,5}
测试
>>> import re
>>> s = '''errors = [
'error=123,',
'error=123455,',
'error=1255,',
]

import re

for line in errors:
mat = re.match('^error=(\d+),', line)
if mat:
print mat.groups()'''
>>> res = r'error=\d{3,5}'
>>> m = re.findall(res,s)
>>> len(m)
3
>>> for v in m:
print v


error=123
error=12345
error=1255
>>>

I_NBFA 2012-08-06
  • 打赏
  • 举报
回复

a = "error = 1234";
print(a[a.index('=')+1:].strip());
  • 打赏
  • 举报
回复
error后面数字是不固定长度的,有时候是123,有时候是12345,有时候是别的长度的,我要把这个错误码截取出来,如果是固定长度的好办,现在这个是不固定长度的,至少有3中长度,123,1234,12345,都是随机出现的。
bugs2k 2012-08-06
  • 打赏
  • 举报
回复
用正则表达式:

errors = [
'error=123,',
'error=123455,',
'error=1255,',
]

import re

for line in errors:
mat = re.match('^error=(\d+),', line)
if mat:
print mat.groups()
Gloveing 2012-08-06
  • 打赏
  • 举报
回复
你指的是什么?
提取出“=”后面的内容么?
string = 'error=123'
err = string.split('=')[1]

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧