正则表达式中间有 @ 字符



尝试在 C# 中创建函数以验证字符串是否传递了这些规则

<可选包含符号的任何字符,但><至少 _x0031_=" 个字母数字字符=">@<至少 _x0031_=" 个字母数字字符="><可选 包含除=">以外的符号的任何字符

基本上确保中间有一个@符号

通过

a@a
1@1
a@1
1@a
11@aa
#!@#1a!#a
1@dasdas2!#

失败

1a@!  fails because alphanumeric character should be besided @
!@ada fails because alphanumeric character should be besided @
a@a@b fails because has 2 @
a@    fails no character on the right
@b    fails no character on the left
@     fails no character beside @

听起来你正在寻找这样的东西:

^[^@]?[A-Za-z0-9]+@[A-Za-z0-9]+[^@]?$

但是,正如注释中已经提到的,您的最后两个"传递"输入与您的规则不匹配 -#!@#1a!#a@之前缺少字母数字字符,并且在第一个和最后一个字符以外的位置具有非字母数字字符。1@dasdas2!#末尾有两个符号,但规则规定!无效,因为它不是字母数字。

请注意,"字母数字"可能意味着不同的东西,具体取决于区域设置。在上面,我从字面上理解为 A-Z、a-z 和 0-9,但还有许多其他字符是"字母"或"数字"。 如果您的正则表达式变体支持w可能是更好的替代品(您没有指定变体),但通常,w也允许下划线 (_)。如果课程不是"字母数字",所以你需要前瞻性的断言来禁止_(同样,这将是特定于变体的,因为正则表达式在实现中没有完全标准化)。

相关内容

  • 没有找到相关文章

最新更新