python regex用于切片字符串

时间:2018-07-31 18:30:09

标签: python regex

是否可以使用正则表达式执行以下操作?

str_ = 'start_sampleString_data_2018-11-18'
new_str = str_[6:-16] // basically new_str -> "sampleString" and remove everything else

是否可以通过正则表达式来做到这一点?

字符串的格式将始终像... 'start_' + 'someSampleString' + '_data_' + 'someDateIn(yyyy-mm-dd) 只需能够从中提取“ someSampleString”。

谢谢!

3 个答案:

答案 0 :(得分:2)

使用re.search

例如:

import re

str = 'start_sampleString_data_2018-11-18'
m = re.search(r"start_(\w+)_data", str)  #Or m = re.search(r"start_([a-zA-Z]+)_data", str)
if m:
    print(m.group(1))

输出:

sampleString

答案 1 :(得分:1)

IIUC,这个简单的正则表达式应该做到:

import re

string = 'start_sampleString_data_2018-11-18'

re.findall('start_(.*)_data', string)

输出:

['sampleString']

答案 2 :(得分:1)

使用后向和向前看:

import re

str = 'start_sampleString_data_2018-11-18'
print(re.search(r'(?<=start_)(.*)(?=_data)', str).group())

# sampleString