![](/img/trans.png)
[英]Unable to eliminate a string of characters from a String using “Strip” in 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.