[英]How to extract a sub-string between two characters?
I want to extract all the dates inside my_list
我想提取my_list
所有日期
my_list = ['FRE_5F_20200915-08u21m57s_ab', 'AY_C7_20200813-17u02m16s_ab', 'ALL_20200915-06u34m05s_ab', 'FF_20200816-11u21m44s_ab']
This is my code:这是我的代码:
for file in my_list:
find = re.search('_(.+?)-', file).group(1)
print(find)
This is the output:这是输出:
5F_20200915
C7_20200813
20200915
20200816
This is my expected output:这是我的预期输出:
20200915
20200813
20200915
20200816
You can use _(\\d+)-
Regex101 :您可以使用_(\\d+)-
Regex101 :
import re
my_list = ['FRE_5F_20200915-08u21m57s_ab', 'AY_C7_20200813-17u02m16s_ab', 'ALL_20200915-06u34m05s_ab', 'FF_20200816-11u21m44s_ab']
r = re.compile(r'_(\d+)-')
for s in my_list:
m = r.search(s)
if m:
print(m.group(1))
Prints:印刷:
20200915
20200813
20200915
20200816
Fixed your regex, your output matches your regex.修复了您的正则表达式,您的输出与您的正则表达式匹配。 To only match numbers between _
and -
you can use '_(\\d+)-'
as seen below要仅匹配_
和-
之间的数字,您可以使用'_(\\d+)-'
,如下所示
import re
my_list = ['FRE_5F_20200915-08u21m57s_ab', 'AY_C7_20200813-17u02m16s_ab', 'ALL_20200915-06u34m05s_ab', 'FF_20200816-11u21m44s_ab']
for file in my_list:
find = re.search('_(\d+)-', file).group(1)
print(find)
Which results in这导致
20200915
20200813
20200915
20200816
This can be done without a regex:这可以在没有正则表达式的情况下完成:
for s in my_list:
# find the index of -
index = s.index("-")
# extract 8 characters before that
print(s[index-8:index])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.