Невозможно проверить электронную почту с помощью регулярного выражения в lex из lambda- python - PullRequest
1 голос
/ 08 июля 2020

Я создаю чат-бота для создания тикета. У меня есть слот для проверки emailid. У меня есть собственное регулярное выражение в лямбда. Я хочу проверить xxx. yyy@gmail.com

При тестировании с помощью lex он принимает xxx@gmail.com, но не принимает xxx. yyy@gmail.com.It снова запрашивает тот же запрос.

def lambda_handler(event, context):
    regex = '^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$'
    val = ""
    slots = event['currentIntent']['slots']
    empidemployee= event['currentIntent']["slots"]["empidemployee"]
    latestdescription= event['currentIntent']["slots"]["latestdescription"]
    latestservice= event['currentIntent']["slots"]["latestservice"]
    latestimpact= event['currentIntent']["slots"]["latestimpact"]
    latesturgency= event['currentIntent']["slots"]["latesturgency"]
    email=event['currentIntent']["slots"]["email"]

    if not (re.search(regex,email)):
        output_session_attributes = event['sessionAttributes'] if event['sessionAttributes'] is not None else {}
        val =  elicit_slot(output_session_attributes,'latestdetails',slots,'email',"Oops! Your emailid is not correct Please enter again!" )
        
    
    else:
        

        send_email(empidemployee,email,latestdescription,latestservice,latestimpact,latesturgency)
        val = close()
    return val

Пример разговора:

Lex:Please provide me emailid
User:123
Lex:Oops! Your emailid is not correct Please enter again
User:www.yyy@gmail.com
Lex:Please provide me emailid
User:ccc@gmail.com
Lex:your ticket is raised
...