gpt4 book ai didi

C#:判断字符串是否是这种模式;可能的正则表达式

转载 作者:行者123 更新时间:2023-11-30 19:04:07 26 4
gpt4 key购买 nike

考虑一个如下所示的字符串:

RR1 S5 C92

这是用于外地邮件投递的乡村路线地址:Rural Route, Site, Compartment。每个字母后跟一个数字和一个空格。通常长一到三位数字,但您永远不知道它可能是多少位数字!如果用户懒惰,他们可能输入了零个、一个或多个空格。

问题:您将使用什么正则表达式来确定给定字符串是否与此模式匹配?

它的用法是这样的:

string ruralPattern; //a regex pattern here
bool isRural = Regex.Match(someString, ruralPattern);

更新:感谢您的建议!性能和使用将在从 Web 服务调用的程序集中的静态方法中进行。根据此模式检查的字符串最多为 50 个字符。该方法将大约每 5 秒调用一次。关于保持静态的任何建议?非常感谢!

最佳答案

这应该有效:

^[Rr][Rr]\d+ *[Ss]\d+ *[Cc]\d+$

或根据其他评论

^[Rr][Rr][0-9]+ *[Ss][0-9]+ *[Cc][0-9]+$

这一切意味着什么:

  • ^ - 字符串的开始
  • [Rr] - 下一个字符必须是 R 或 r
  • [Rr] - 下一个字符必须是 R 或 r
  • \d+ 或 [0-9]+ - 下一部分必须是一位或多位数字
  • (空格)* - 允许 0 个或更多空格
  • [Ss] - 下一个字符必须是 S 或 s
  • \d+ 或 [0-9]+ - 下一部分必须是一位或多位数字
  • (空格)* - 允许 0 个或更多空格
  • [Cc] - 下一个字符必须是 C 或 c
  • \d+ 或 [0-9]+ - 下一部分必须是一位或多位数字
  • $ - 字符串结尾

可能有更优雅的解决方案,但这很容易阅读。

编辑:已更新以包含一些评论的输入

关于C#:判断字符串是否是这种模式;可能的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1337820/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com