使用Python我正在尝试去除两个字符之间出现的字符串的一部分。字符串可以是不同的长度,因此字符计数将不起作用。我正在寻找的一个例子是:
172.-.221 - - [07/-20-:16:36:27 -0500] Firefox/17.0" ** 0 s/ 950 ms **
字符串的所需部分是0 s/ 950 ms
,我注意到它始终存在于双星号(** **
)之间。
我如何抓住两个双星号(**
)之间的字符串部分?如何将其输出到屏幕或将其保存到文件?
答案 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