C# 查询中的多个表达式/字符串

C# 查询中的多个表达式/字符串,c#,regex,C#,Regex,有人能帮我写这个脚本吗,我只是凡人,不是程序员!只有第一个字符串表达式在工作 目的是获取具有以下邮政编码范围的订单,以便将其分配到文件夹 7000-8999 3000-3999 5000-5900 String AusPostcodeExp = @"^[78][0-9][0-9][0-9]$"; String AusPostcodeExp2 = @"^3[0-9][0-9][0-9]$"; String AusPostcodeExp3 = @"^5[0-8][0-9][0-9]$"; Strin

有人能帮我写这个脚本吗,我只是凡人,不是程序员!只有第一个字符串表达式在工作

目的是获取具有以下邮政编码范围的订单,以便将其分配到文件夹 7000-8999 3000-3999 5000-5900

String AusPostcodeExp = @"^[78][0-9][0-9][0-9]$";
String AusPostcodeExp2 = @"^3[0-9][0-9][0-9]$";
String AusPostcodeExp3 = @"^5[0-8][0-9][0-9]$";
String AusPostcodeExp4 = @"^5[0-9][0][0]$";
String postcode = order.PostCode.ToString();

if (order.Country.ToUpper() == "AUSTRALIA" && IsValid(postcode, AusPostcodeExp ))
if (order.Country.ToUpper() == "AUSTRALIA" && IsValid(postcode, AusPostcodeExp2 ))
if (order.Country.ToUpper() == "AUSTRALIA" && IsValid(postcode, AusPostcodeExp3 ))
if (order.Country.ToUpper() == "AUSTRALIA" && IsValid(postcode, AusPostcodeExp4 ))
{
order.SetAssignToAFolder("MELBOURNE");

您可以使用替代(
|
)。例如,
A | B
将首先尝试匹配模式
A
,如果失败,将尝试匹配模式
B

您可以将其与其他正则表达式构造(如组(
(…)
)和量词(
{…}
)相结合,以显著简化模式

尝试这样的模式:

^([378][0-9]{3}|5([0-8][0-9]{2}|900))$
希望此图(使用生成)有助于解释此处发生的情况:


看起来不错,非常感谢您的帮助,尽管您尝试了,但什么也没发生!字符串AusPostcodeExp=@“^([378][0-9]{3}| 5([0-8][0-9]{2}| 900))$”;字符串postcode=order.postcode.ToString();如果(order.Country.ToUpper()=“AUSTRALIA”&&IsValid(postcode,AusPostcodeExp)){order.SetAssignToAFolder(“墨尔本”);我知道我的原始代码有点冗长,但第一行是独立运行的。当我添加其他范围时,我不喜欢它,我想可能我缺少了“else”之类的内容,或者应该删除$符号或其他内容?这个模式对我很有效。确切的输入是什么?(
postalcode
)这是什么语言?另外,你的代码似乎缺少了一部分。我很确定这是C,但@Kendall是对的。如果这是C,请使用
[C]
标记。就像我说的,我只是凡人,不知道你说的[C]是什么意思tag!@jacquisu我已将您的问题编辑为包含C#标记。如果这不正确,并且您没有使用C#,您可以使用问题下方的“编辑”链接更正我的编辑。