Python Regex用于从字符串中提取特定部分

时间:2015-11-16 11:56:38

标签: python regex

我有以下字符串:

SOURCEFILE:  file_name.dc     : 1 : log: the logging area

我试图在变量中存储第三个和第四个冒号之间的任何内容并丢弃其余部分。

我试图制作一个正则表达式来抓住这个但是到目前为止我有这个错误:

([^:]:[^:]*)

我希望得到一些帮助以及对有效正则表达式的解释,以便我可以从错误中吸取教训。

3 个答案:

答案 0 :(得分:1)

numbers = 12345
letters = 'abcde'
num_letters = '12345'

# this works:
str(numbers)
int(num_letters)

# this doesn't work:
int(letters)

答案 1 :(得分:0)

import re

s = "SOURCEFILE:  file_name.dc     : 1 : log: the logging area"
#find out all indices of colon in string
indices = [x.start() for x in re.finditer(":",s)]
result = s[:indices[2]] + s[indices[3]+1:] # remove 3rd and 4th colon as well
#result = s[:indices[2]+1] + s[indices[3]:] #remains 3rd and 4th colon

尝试找出第3和第4个冒号的索引,并连接头部和尾部

答案 2 :(得分:0)

已做出以下假设。

  • 冒号总是相同的
  • 冒号(:)始终是分隔符。
  • 输入字符串位于变量input

这只是一行:

result = map(lambda s: s.strip(), input.split(':'))[3]

如果你需要保留空格:

result = input.split(':')[3]