Python规则词剪切

Python规则词剪切,python,Python,我有字符串:。/money.log\u旋转。27.10.2011\u 17:15:01:[27-10-2011 17:07:02]。 我需要字符串:'27-10-2011 17:07:02' 如何在python中做到这一点?有很多方法可以做到这一点,一种方法是使用: 另一种是使用: 或及: 所有这些方法都依赖于紧跟在第一个左括号之后的所需子字符串[ 前两种方法还依赖于所需的子字符串,该子字符串在文本中的倒数第二个字符处结束。最后一种方法(使用rfind)从右侧搜索右括号的索引,因此它更为通用,并

我有字符串:
。/money.log\u旋转。27.10.2011\u 17:15:01:[27-10-2011 17:07:02]。

我需要字符串:
'27-10-2011 17:07:02'


如何在python中做到这一点?

有很多方法可以做到这一点,一种方法是使用:

另一种是使用:

或及:

所有这些方法都依赖于紧跟在第一个左括号之后的所需子字符串
[


前两种方法还依赖于所需的子字符串,该子字符串在
文本中的倒数第二个字符处结束。最后一种方法(使用
rfind
)从右侧搜索右括号的索引,因此它更为通用,并且不依赖于太多的子字符串(潜在值为1)常量。

有很多方法可以做到这一点,一种方法是使用:

另一种是使用:

或及:

所有这些方法都依赖于紧跟在第一个左括号之后的所需子字符串
[


前两种方法还依赖于所需的子字符串,该子字符串在
文本中的倒数第二个字符处结束。最后一种方法(使用
rfind
)从右侧搜索右括号的索引,因此它更为通用,并且不依赖于太多的子字符串(潜在值为1)常量。

您也可以使用正则表达式:

import re

s = './money.log_rotated.27.10.2011_17:15:01:[27-10-2011 17:07:02]'
print re.search(r'\[(.*?)\]', s).group(1)

也可以使用正则表达式:

import re

s = './money.log_rotated.27.10.2011_17:15:01:[27-10-2011 17:07:02]'
print re.search(r'\[(.*?)\]', s).group(1)

如果字符串始终具有相同的结构,这可能是最简单的解决方案:

s = r'./money.log_rotated.27.10.2011_17:15:01:[27-10-2011 17:07:02]'
s[s.find("[")+1:s.find("]")]
更新:

在看到其他一些答案后,这是一个轻微的改进:

s[s.find("[")+1:-1]

利用结束方括号是字符串中的最后一个字符这一事实。

如果字符串始终具有相同的结构,这可能是最简单的解决方案:

s = r'./money.log_rotated.27.10.2011_17:15:01:[27-10-2011 17:07:02]'
s[s.find("[")+1:s.find("]")]
更新:

在看到其他一些答案后,这是一个轻微的改进:

s[s.find("[")+1:-1]
利用结束方括号是字符串中的最后一个字符这一事实。

尝试使用正则表达式:

import re
re.findall(".*\[(.*)\]", './money.log_rotated.27.10.2011_17:15:01:[27-10-2011 17:07:02]')

>>> ['27-10-2011 17:07:02']
尝试使用正则表达式:

import re
re.findall(".*\[(.*)\]", './money.log_rotated.27.10.2011_17:15:01:[27-10-2011 17:07:02]')

>>> ['27-10-2011 17:07:02']
可能是最简单的方法(如果您知道字符串将始终采用这种格式)

>>> s = './money.log_rotated.27.10.2011_17:15:01:[27-10-2011 17:07:02]'
>>> s[s.index('[') + 1:-1]
'27-10-2011 17:07:02'
可能是最简单的方法(如果您知道字符串将始终采用这种格式)

>>> s = './money.log_rotated.27.10.2011_17:15:01:[27-10-2011 17:07:02]'
>>> s[s.index('[') + 1:-1]
'27-10-2011 17:07:02'
如果格式为“固定”,也可以使用此

>>> s = './money.log_rotated.27.10.2011_17:15:01:[27-10-2011 17:07:02]'
>>> s[-20:-1:]
'27-10-2011 17:07:02'
>>> 
如果格式为“固定”,也可以使用此

>>> s = './money.log_rotated.27.10.2011_17:15:01:[27-10-2011 17:07:02]'
>>> s[-20:-1:]
'27-10-2011 17:07:02'
>>> 

@kame,因为事实证明你没有。我只是习惯于在
*
后面跟一些东西时使用它。@kame,因为事实证明你没有。我只是习惯于在
*
后面跟一些东西时使用它。可能的重复可能的重复