C# 中间有@字符的正则表达式
尝试在C#中创建一个函数来验证字符串是否通过这些规则 @ 基本上确保中间有一个@符号 通过C# 中间有@字符的正则表达式,c#,.net,regex,validation,C#,.net,Regex,Validation,尝试在C#中创建一个函数来验证字符串是否通过这些规则 @ 基本上确保中间有一个@符号 通过 a@a 1@1 a@1 1@a 11@aa #!@#1a!#a 1@dasdas2!# 失败 听起来你在找这样的东西: ^[^@]?[A-Za-z0-9]+[A-Za-z0-9]+[^@]$ 但是,正如评论中已经提到的,您的最后两个“传递”输入与您的规则不匹配--#@#1a#在@之前缺少字母数字字符,并且在第一个和最后一个字符以外的位置具有非字母数字字符1@dasdas2!#的末尾有两个符号,但规则规
a@a
1@1
a@1
1@a
11@aa
#!@#1a!#a
1@dasdas2!#
失败
听起来你在找这样的东西:
^[^@]?[A-Za-z0-9]+[A-Za-z0-9]+[^@]$
但是,正如评论中已经提到的,您的最后两个“传递”输入与您的规则不匹配--#@#1a#在@
之前缺少字母数字字符,并且在第一个和最后一个字符以外的位置具有非字母数字字符<代码>1@dasdas2!#代码>的末尾有两个符号,但规则规定代码>无效,因为它不是字母数字
请注意,“字母数字”可以表示不同的内容,具体取决于语言环境。在上面,我将其字面理解为A-Z、A-Z和0-9,但还有许多其他字符是“字母”或“数字”\w
可能是一个更好的替代品,如果您的regex变量支持它(您没有指定变量),但是通常,\w
也会允许下划线(\u
)。如果这门课程不是“字母数字”的,那么您需要前瞻性的断言来禁止。
(这同样是特定于变量的,因为正则表达式在实现中没有完全标准化)。您能展示您的尝试吗?您的描述与您的描述不匹配inputs@TheGeneral请详细说明。这是如何通过的@#1a#a
当你说“@”和其他奇怪的词时,这似乎不允许点作为符号它似乎不允许符号1b2!a3@qad11#拜伦,这会允许“.”作为我所知道的任何正则表达式变体的符号。和“1b2!a3@qad11与你所说的规则不匹配,因为“!”符号在第一部分的中间,而不是在字符串的开头或结尾。下面是一个URL,用于测试我上面写的模式:
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 @