如何检查C#正则表达式是否试图匹配1-(and-inly-1)字符串?
题
也许这是一个非常罕见的(甚至是愚蠢)的问题,但是我确实需要在我的应用中。
如何检查C#正则表达式是否试图匹配1个字符字符串?
这意味着,我只允许用户搜索1个字符的字符串。如果用户试图搜索多字符字符串,则将向用户显示错误消息。
我清楚自己吗?
谢谢。
彼得
PS:我看到了一个关于计算最终匹配字符串的长度的答案,但是由于某些未知原因,答案消失了。我认为一段时间以来,我认为计算最终匹配的字符串长度还可以,尽管这会很慢。然而,最初的问题非常罕见和乏味。
解决方案
您可以仅将其应用于单个字符而不是整个字符串,而不是验证可能复杂的正则表达式。
如果不可能,您可能需要将正则表达式的可能性限制为某些特征。例如,用户只能输入字符以匹配或排除字符。然后,您在代码中构建正则态度。
例如:
ABC
火柴[ABC]
^ABC
火柴[^ABC]
A-Z
火柴[A-Z]
#
火柴[0-9]
\w
火柴\w
AB#x-z
火柴[AB]|[0-9]|[x-z]|\w
- 您需要支持哪些情况?
这很容易解析和验证。
其他提示
正则是 .{1}
不过,这将允许任何字符。如果您只想要alpanumeric,则可以使用 [a-z0-9]{1}
或速记 /w{1}
它的另一个选项是限制用户可以在输入字段中输入的字符数。在其上设置最大长度。
另一个选择是将表单输入字段保存到char而不是字符串,尽管您可能需要进行一些处理以防止错误。
为什么不使用maxLength并保存到字符中。
您可以寻找无浮标的 *
, +
, {}
, ?
等等,并计算字符的数量(不要忘记将 []
作为一个角色)。
基本上,您必须解析正则。
不隶属于 StackOverflow