如果字符串与列表中存在的元素匹配,则从字符串中提取子字符串

时间:2018-04-27 16:37:29

标签: python regex string list

如果匹配元素出现在列表中,我想提取字符串的一部分,例如我有一个字符串s和列表l1

s = 'Vipul Singh, Jun 24, 1995'
l1 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']

现在我想从'Jun 24, 1995'中提取字符串s的子字符串,因为列表l1中存在'Jun'。

所以这就是我想要我的子串的方式,我尝试了很多regexstr函数但没有结果。

注意:我有许多与

类似的字符串
vipul singh, Jan 1, 2017, 10:00,
ANI,May 6, 2009, 14:59 IST,

1 个答案:

答案 0 :(得分:3)

看起来您只需要提取日期,并且由于它们共享一种通用格式,因此对于正则表达式来说这是一个简单的问题。

尝试使用[a-zA-Z]{3}\s[0-9]{1,2},\s[0-9]{4}

['Jun 24, 1995', 'Jan 1, 2017', 'May 6, 2009']

输出:

'ABC 23, 1111'

如果您担心匹配months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] dates = re.findall(r'(?:{})\s[0-9]{{1,2}},\s[0-9]{{4}}'.format('|'.join(months)), s) 之类的内容,则您只能接受有效月份作为前三个字母:

while True:

    #Call game()
    game()
    #Call guessed_letters()
    guessed_letters()
    #Count how many times guesses
    count += 1
    check()