用于切片字符串的python正则表达式

2024-06-15 21:31:08 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有什么方法可以使用regex来实现以下功能

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

有没有办法通过regex来实现这一点

字符串的格式总是。。。 'start_' + 'someSampleString' + '_data_' + 'someDateIn(yyyy-mm-dd) 只需要能够从中提取“someSampleString”

谢谢


Tags: and方法功能newdatastartelseremove
3条回答

使用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

使用lookback和lookahead:

import re

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

# sampleString

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

import re

string = 'start_sampleString_data_2018-11-18'

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

输出:

['sampleString']

相关问题 更多 >