C# 允许分号的正则表达式

C# 允许分号的正则表达式,c#,regex,C#,Regex,我有一个用于验证字符串的正则表达式,但它不接受分号?是因为我必须使用一些转义序列吗?我测试了我的正则表达式,它通过了,即允许分号,但在我的c#app中不允许 已编辑我有以下正则表达式 ^[A-Za-z0-9]{1}[A-Za-z.&0-9\s\\-]{0,21}$ 并尝试验证sar232贸易公司代码>&实体提示您在某个XML属性中包含此正则表达式,并且此&被解析为单个&符号 这意味着,您的模式在第二个字符类中缺少分号,这就是您的正则表达式与您提供的字符串不匹配的原因

我有一个用于验证字符串的正则表达式,但它不接受分号?是因为我必须使用一些转义序列吗?我测试了我的正则表达式,它通过了,即允许分号,但在我的c#app中不允许

已编辑我有以下正则表达式

^[A-Za-z0-9]{1}[A-Za-z.&0-9\s\\-]{0,21}$

并尝试验证sar232贸易公司

代码>&实体提示您在某个XML属性中包含此正则表达式,并且此
&被解析为单个
&
符号

这意味着,您的模式在第二个字符类中缺少分号,这就是您的正则表达式与您提供的字符串不匹配的原因

解决方案很简单:将分号添加到第二个字符类:

someattr="^[A-Za-z0-9][;A-Za-z.&0-9\s\\-]{0,21}$"
                       ^ 


还请注意,
{1}
限制量词是多余的,因为
[a-Za-z0-9]
已经只匹配指定范围内的一个符号。

欢迎使用堆栈溢出!请浏览、和部分,了解此网站的工作原理,并帮助您改进当前和未来的问题,从而帮助您获得更好的答案。我们不会去其他地方了解您的问题。相关信息需要在这里,在问题本身。如果是非现场的,并且由于某种原因(离线、移动或其他原因)该非现场位置不可用,则您的问题对未来的读者没有任何价值。请在您的问题中包括应该(和不应该)匹配的文本样本和您正在使用的正则表达式(以及试图使用它的代码)不在这里工作。@ShizaKhan您看到的不同行为可能是由于
&位:在一个环境中,它被解释为一个符号和(它是某些XML的一部分),在另一个环境中,它被解释为一个类中的五个不同字符,其中一个是分号。在第二个字符类中添加分号:
^[a-Za-z0-9][;a-Za-z.&;0-9\s\\\-]{0,21}$
-
-
&
很可能是一个符号
&
。它是某种XML中的值吗?请在问题中添加更多细节。