猿问

go 正则表达式用Python实现同样的效果

有两个串行服务,一个是go写的,一个是Python写的。
都使用正则验证邮箱地址,发现两个代码验证的结果不一致,现在想统一验证效果。
go 中 的正则表达式:(govalidatirs)

希望Python也能实现同样的验证效果(不能改go的代码,也不能取消验证)

有什么方式实现正则的翻译吗,直接使用上面的表达式是不行的



慕无忌1623718
浏览 211回答 1
1回答

函数式编程

"^(((([a-zA-Z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\x00A0-\xD7FF\xF900-\xFDCF\xFDF0-\xFFEF])+(\.([a-zA-Z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\x00A0-\xD7FF\xF900-\xFDCF}\xFDF0}-\xFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\x00A0-\xD7FF\xF900-\xFDCF\xFDF0-\xFFEF])|(\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\x00A0-\xD7FF\xF900-\xFDCF\xFDF0-\xFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-zA-Z]|\d|[\x00A0-\xD7FF\xF900-\xFDCF\xFDF0-\xFFEF])|(([a-zA-Z]|\d|[\x00A0-\xD7FF\xF900-\xFDCF\xFDF0-\xFFEF])([a-zA-Z]|\d|-|\.|_|~|[\x00A0-\xD7FF\xF900-\xFDCF\xFDF0-\xFFEF])*([a-zA-Z]|\d|[\x00A0-\xD7FF\xF900-\xFDCF\xFDF0-\xFFEF])))\.)+(([a-zA-Z]|[\x00A0-\xD7FF\xF900-\xFDCF\xFDF0-\xFFEF])|(([a-zA-Z]|[\x00A0-\xD7FF\xF900-\xFDCF\xFDF0-\xFFEF])([a-zA-Z]|\d|-|_|~|[\x00A0-\xD7FF\xF900-\xFDCF\xFDF0-\xFFEF])*([a-zA-Z]|[\x00A0-\xD7FF\xF900-\xFDCF\xFDF0-\xFFEF])))\.?$"python用这个,这是根据你那个go的改的,效果一样。但其实验证邮箱的没必要写这么复杂
随时随地看视频慕课网APP
我要回答