gpt4 book ai didi

c# - 电子邮件 ID 的正则表达式检查失败

转载 作者:行者123 更新时间:2023-11-30 20:42:37 24 4
gpt4 key购买 nike

我从 MSDN 得到了电子邮件 ID 的正则表达式检查.但是当 _ 和 @ 一个接一个地出现时它会失败。

表达:

 @"^(?("")("".+?(?<!\\)""@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))" +
@"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-z][-\w]*[0-9a-z]*\.)+[a-z0-9][\-a-z0-9]{0,22}[a-z0-9]))$",

示例:check_@hotmail.com 失败,即使它是有效的 ID。

哪里需要修改字符串,看起来很乱,看不懂。

最佳答案

更改 (?<=[0-9a-z])@在你的正则表达式中为 (?<=[0-9a-z_])@

(?<=[0-9a-z])@断言匹配@必须以 0-9 开头或 a-z .

所以通过添加 _在 char 类内部也将允许 _@ 之前出席.

只有断言是不够的,我们必须添加真正的字符(即实际匹配下划线符号的模式)。别担心,\wlookbehind + @ 之前存在的 char 类中会为你做的。

关于c# - 电子邮件 ID 的正则表达式检查失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31199755/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com