考虑一个如下所示的字符串:
RR1 S5 C92
这是一个乡村路线地址,用于城外邮件递送:乡村路线,站点,隔间.每个字母后跟一个数字和一个空格.通常一到三位数,但你永远不知道它可能有多少个数字!如果用户是懒惰的,他们可能已输入零,一个或多个空格.
问题: 您将使用什么正则表达式来确定给定字符串是否与此模式匹配?
它的用法是这样的:
string ruralPattern; //a regex pattern here
bool isRural = Regex.Match(someString, ruralPattern);
Run Code Online (Sandbox Code Playgroud)
更新:感谢您的建议!性能和用法将在从Web服务调用的程序集中的静态方法中.根据此模式检查的字符串最多为50个字符.该方法大约每5秒调用一次.有关保持静态的任何建议吗?非常感激!
这应该工作:
^[Rr][Rr]\d+ *[Ss]\d+ *[Cc]\d+$
Run Code Online (Sandbox Code Playgroud)
或根据其他评论
^[Rr][Rr][0-9]+ *[Ss][0-9]+ *[Cc][0-9]+$
Run Code Online (Sandbox Code Playgroud)
这一切意味着什么:
可能有一个更优雅的解决方案,但这很容易阅读.
编辑:已更新以包含某些注释的输入