1

我想定义一个“有效”输入,_-.不允许在字符串的末尾或开头,只允许在中间。

可接受的字符(位置无关紧要):a-zA-Z0-9以及我不知道如何在正则表达式中允许它们的所有希伯来字母(也许只是对所有字母进行硬编码?)

不可接受的字符(位置无关紧要):所有符号,除了我之前提供的特殊符号。

我不知道如何构建这种模式,如果您可以在每个部分添加提示和评论,我会理解的。谢谢!

这不是为了家庭作业,只是为了自学。

4

1 回答 1

1
@"^[a-zA-Z\dא-ת][a-zA-Z_\-\.\dא-ת]*[a-zA-Z\dא-ת]$"

如果您想允许“_.-”不重复:

@"^[a-zA-Z\dא-ת]([a-zA-Z\dא-ת]+[_\.\-]?)*[a-zA-Z\dא-ת]$"

如果要在中间允许空格:

@"^[a-zA-Z\dא-ת][a-zA-Z_\-\.\d\sא-ת]*[a-zA-Z\dא-ת]$"

如果你想要空格 + "_.-" 没有重复:

@"^[a-zA-Z\dא-ת]([a-zA-Z\d\sא-ת]+[_\.\-]?)*[a-zA-Z\dא-ת]$"

所以使用正则表达式:

var isValid = Regex.IsMatch(input, @"...");

此外,如果您计划在代码中多次使用正则表达式,我建议添加 RegexOptions.Compiled 标志,以提高速度。

var isValid = Regex.IsMatch(input, @"...", RegexOptions.Compiled);
于 2012-04-21T09:24:52.010 回答