繁体   English   中英

使用python去除重复出现的字符之间的字符串的一部分

[英]strip out part of a string between reocurring characters using python

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

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

字符串的期望部分是0 s/ 950 ms ,我注意到它在双星号( ** ** )对之间始终出现。

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

这正是re所做的事情。 例如

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

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

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

通过在每次出现的"**"处拆分字符串来创建字符串列表,然后从该列表中获取第二项索引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 '

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM