【发布时间】:2021-10-23 13:45:47
【问题描述】:
我正在尝试在 .Net 应用程序中使用 C# 中的正则表达式来实现以下目标
我需要限制包含“仅”这三个特殊字符(即 #、@ 和 %)的字符串。允许任何其他字符
一些例子
ab#c - 允许
abc#@ - 允许
#%abc - 允许
#@% - 不允许
##@ - 不允许
我尝试了什么
^(?!(#|@|%)+$)
但它似乎没有按预期工作。我哪里错了?
我在属性上使用数据注释,所以我正在寻找一种可以排除不正确输入字符串的正则表达式模式。我无法使用Regex.IsMatch() 函数。
澄清:我的字符串应该接受任何字符。唯一应该失败的情况是输入字符串只有 #、@ 或 %。
【问题讨论】:
-
这个
^[#@%]+$对你有用吗? -
[^#@%]+- 除#, @, %之外的至少一个符号? -
如果您将
$和单词字符视为“有效”,则需要^[#@%$]*[\w$][\w$#@%]*$。请说明您的要求。 -
所以情况是我的字符串可以接受任何字符。我想要的唯一限制是限制只有 #、@ 或 % 的字符串。
-
然后
^[^#@%]*$或^[^#@%]+$