Я работаю в .NET (C # 4.0); Как мне написать выражение, которое соответствует тексту, который содержит '?' или пробел '\ S'?
GlennTest (should not match)
Glenn?Test (should match)
Glenn Test (should match)
Glenn? Test (should match)
Glenn ?Test (should match)
?Glenn Test (should match)
Я могу написать выражение, чтобы найти его, но объединение их доставляет мне проблемы.
РАЗЪЯСНЕНИЯ:
Я проясняю свой вопрос, потому что ни один из ответов до сих пор не сработал.
Я пишу приложение MVC со следующим атрибутом RegExp для одного из свойств, которое, кажется, работает как задумано (без пробелов).
[DataMember(Name="Job Code")]
[Required(ErrorMessage="Job Code is required.")]
[RegularExpression(@"^\S*$", ErrorMessage = "Spaces are not allowed in the Job Code")]
public string JobCode { get; set; }
Тем не менее, я хочу расширить эту возможность, чтобы запретить '?' вопросительные знаки также.
Я также хочу проверить это в коде, а не в MVC View, используя такой код:
public static bool IsValidCode(string code, out string message)
{
message = "";
const string NO_QMS_REG_EXP = @"^\?*$";
const string NO_SPACES_REG_EXP = @"^\S*$";
var expr1 = new Regex(NO_QMS_REG_EXP);
var expr2 = new Regex(NO_SPACES_REG_EXP);
if (expr1.IsMatch(code))
{
message = "Code cannot contain a question mark";
return false;
}
if (expr2.IsMatch(code))
{
message = "Code cannot contain a space";
return false;
}
// TODO: One expression that validates both simulatenously??
return true;
}
Вопрос MVC3: Могу ли я программно выполнить проверку свойств Regex Attrib?