需要对带有分号HTTP状态代码的字符串应用正则表达式验证:
"202;500;503"
我试过这个正则表达式
^([0-9]+;)*[0-9]+$
但我得到一个例外:
该属性的值' retryStatusCodes'无效。错误是:该值不符合验证正则表达式字符串^([0-9]+;)*[0-9]+$
。
怎么可能?我在这里测试了它:https://regexr.com/
并且有效
为什么它在C#代码中不起作用?
我在ConfigurationSectionDesigner中使用它验证attrtibutes,为此属性自动生成代码:
/// <summary>
/// Gets or sets the RetryStatusCodes.
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ConfigurationSectionDesigner.CsdFileGenerator", "2.0.3.2")]
[global::System.ComponentModel.DescriptionAttribute("The RetryStatusCodes.")]
[global::System.Configuration.RegexStringValidatorAttribute("^([0-9]+;)*[0-9]+$")]
[global::System.Configuration.ConfigurationPropertyAttribute(global::XXX.XXX.XXX.RetryStatusCodesPropertyName, IsRequired=true, IsKey=false, IsDefaultCollection=false)]
public virtual string RetryStatusCodes
{
get
{
return ((string)(base[global::XXX.XXX.XXX.RetryStatusCodesPropertyName]));
}
set
{
base[global::XXX.XXX.XXX.RetryStatusCodesPropertyName] = value;
}
}