小编gsu*_*fan的帖子

艰难的正则表达式问题

我需要创建一个单一的正则表达式(使用.NET 3.5 Regex,如果这很重要),它允许以下三种可能性:

  1. [A-Z]{2,3}
  2. [A-Z]{2,3}-[A-Z][A-Z0-9]{1,2}
  3. [A-Z]{2,3}-[A-Z][A-Z0-9]{1,2}-[A-Z0-9]{2,3}

因此BIG,BIG-A9BIG-A09-SD将匹配,但是BIG-F,BIG-A9S-BIG-A09-S将不匹配.

我应该澄清一些事情:

  • 我需要匹配整条线,而不仅仅是它的一部分.

  • 我正在尝试为正在键入此字符串的用户提供反馈TextBox.因此,我正在寻找一个正则表达式,我可以用它来测试TextBox的内容,只要它发生变化.例如,当用户键入"A"时,反馈应为负数,因为它们尚未匹配案例1.一旦他们键入"AA",反馈将为正,因为他们已匹配案例1.在键入"AAE"后,他们应该仍然得到积极的反馈,因为他们已经匹配案例1.如果他们输入"AA7",反馈应该是负面的.如果他们继续输入并输入"AAE-",则反馈应该再次为负,因为他们还没有遇到案例2,并且已超过案例1.

我把头发拉出来(剩下的东西很少).

有人在那里知道如何以一种有效的方式表达这一点吗?

.net regex

2
推荐指数
1
解决办法
96
查看次数

标签 统计

.net ×1

regex ×1