如何解决正则表达式中间有@字符
尝试在C#中创建函数以验证字符串是否通过了这些规则
@
基本上确保中间有一个@符号
通过
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,但是那里还有许多其他字符是“字母”或“数字”。如果您的regex变体(未指定变体)支持\w
,则可能是更好的替代方法,但是通常,\w
还可以使用下划线(_
)。如果这个过程不是“字母数字”,那么您就需要前瞻性的断言来禁止_
(这又是特定于变量的,因为正则表达式尚未在各个实现中完全标准化)。>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。