使用python删除重复字符之间的字符串的一部分

时间:2013-12-11 21:02:02

标签: python

使用Python我正在尝试去除两个字符之间出现的字符串的一部分。字符串可以是不同的长度,因此字符计数将不起作用。我正在寻找的一个例子是:

172.-.221 - - [07/-20-:16:36:27 -0500] Firefox/17.0" ** 0 s/ 950 ms **

字符串的所需部分是0 s/ 950 ms,我注意到它始终存在于双星号(** **)之间。

我如何抓住两个双星号(**)之间的字符串部分?如何将其输出到屏幕或将其保存到文件?

5 个答案:

答案 0 :(得分:3)

这正是重新制作的东西。 e.g。

import re

TheString = '172.-.221 - - [07/-20-:16:36:27 -0500] Firefox/17.0" ** 0 s/ 950 ms **'

wc = re.compile(r'\*\*(.*)\*\*')
matches = wc.findall(TheString)

#returns ['0 s/ 950 ms ']

答案 1 :(得分:2)

>>> s='172.-.221 - - [07/-20-:16:36:27 -0500] Firefox/17.0" ** 0 s/ 950 ms **'
>>> s.split('**')[1].strip()
'0 s/ 950 ms'

答案 2 :(得分:1)

您可以使用str.split来提取它:

myString.split("**")[1]

这会通过在"**"的每个外观处拆分字符串来创建字符串列表,然后从该列表中获取第二个项目索引1

答案 3 :(得分:1)

这也很好:))

>>> import re
>>> string = '172.-.221 - - [07/-20-:16:36:27 -0500] Firefox/17.0" ** 0 s/ 950 ms **'
>>> re.search('\*{2}(.+)\*{2}', string).group(1)
' 0 s/ 950 ms '

答案 4 :(得分:0)

您可以使用正则表达式(子方法)。这是Google的一个很好的教程: https://developers.google.com/edu/python/regular-expressions