我想匹配字符串中的符号@。无论它是在字符串的开头、中间、结尾还是字符串内部的任何位置,都没有关系。重要的是只匹配 0 或 1 次。
我想到了这样的事情:
^[^@]*@[^@]*$
但肯定行不通,因为即使它匹配符号@一次,它也只能在字符串内部匹配。
@foobar Valid
foo@bar Valid
foobar@ Valid
fooba@r Valid
but
@@foobar Invalid
@foo@bar Invalid
foo@b@ar Invalid
您可以使用以下正则表达式:
^[^@]*@[^@]*$
禁止拥有超过一个@
在你的输入字符串中。
Tested:
https://regex101.com/r/H4hXF5/1 https://regex101.com/r/H4hXF5/1
如果您还需要匹配不带@
在其中添加一个?
就在正则表达式中的后面:
^[^@]*@?[^@]*$
这也将匹配字符串abc
例如
解释:
-
^
行首
-
[^@]*
那么除了@
被拍摄了 0 到 N 次
-
@
然后一个@
char
-
[^@]*
与步骤2相同
-
$
行尾
-
?
在该角色变为可选之前拥有该角色
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)