在Python中匹配字符串模式(包括数字和':')

问题描述:

我在这里问如何在Python中的长字符串中提取特定类型的字符串。在Python中匹配字符串模式(包括数字和':')

我的字符串=“开始1:1.300454结束”

我不就没怎么只有“1:1.300454”提取我的字符串样本。

只需使用regular expressions

import re 

pattern = re.compile(r'^start (.*) end$') 

my_string = 'start 1: 1.300454 end' 

extract = pattern.match(my_string).group(1) 
print(extract) 

打印

1: 1.300454 

您可以在子 “结束” 分裂,并采取第一部分,然后点击 “开始” 拆走最后一部分:

my_string = 'start 1: 1.300454 end' 
extract = my_string.split(' end', 1)[0].split("start ", 1)[-1] 
print(extract) 

使用字符串切片。您的案例。

In [7]: def extract_content(string, prefix='start ', suffix=' end'): 
    ...:  return string[len(prefix):-len(suffix)] 
    ...: 

In [8]: string 
Out[8]: 'start 1: 1.300454 end' 

In [9]: extract_content(string) 
Out[9]: '1: 1.300454'