C#正则表达式匹配字符串

时间:2014-09-10 23:48:25

标签: c# regex

我目前在使用正则表达式匹配字符串时遇到了困难。目标是匹配:

  • 一两个字母
  • 一个,两个或三个数字
  • 零或一个星号

如U21,F305和H12 *。我正在使用的正则表达式是:

\D{1,2}\d{1,3}\*?

但是,它匹配的字符串如下:

  • 3.0L
  • 6HBW20
  • 八分之三"
  • Y1015

我对正则表达式并不太明亮,但这让我无法完成我的项目。任何人都可以帮助我吗?

谢谢。

3 个答案:

答案 0 :(得分:4)

尝试使用/^[a-zA-Z]{1,2}\d{1,3}\*?$/

锚点^和$有助于确保您完全匹配您想要的模式。阅读它们:)

答案 1 :(得分:1)

您需要锚定您的匹配。 ^将比赛固定在线的开头; $会在行尾删除锚点。

试试这个正则表达式

@"^[\p{L}]{1,2}\d{1,3}[*]?$"

答案 2 :(得分:0)

\D匹配任何非数字,这是一个比字母大得多的集合(基本上其他所有,包括句点,斜杠等)。尝试使用[a-zA-Z]{1,2}匹配1或2个字母。

[a-zA-Z]{1,2}\d{1,3}\*?