是否可以使用正则表达式执行以下操作?
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”。
谢谢!
答案 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