仅限数字的正则表达式加上'h'字符

时间:2012-07-03 05:47:39

标签: c# regex

我想在字符串中的任何地方包含数字和/或“h”或“H”字符时验证字符串。

e.g。

  

123 - 有效
  123h - 有效
  1h23 - 有效
  h234 - 有效
  123H - 有效
  asdf - 无效
  123d - 无效

我能够仅限数字字符串,但不能满足h的额外要求。我怎么能这样做?

5 个答案:

答案 0 :(得分:5)

^\d*h?\d*$

与ignore case选项一起使用。

here on Regexr

^锚定到字符串的开头。

\d*匹配0位或更多位数

h?匹配0或1小时

\d*匹配0位或更多位数

$锚到字符串的末尾。

答案 1 :(得分:3)

[0-9h]*将匹配任何数字0-9或h。要只允许一个,“h”你可以使用[0-9]*h?[0-9]*(我假设你已经做了不区分大小写)。您还可以限制h周围的位数,如[0-9]{1,2}h?[0-9]{1,2}

让我们真的忘掉了,假设你想让0-59作为分钟输入,或者以小时和分钟格式输入分隔'h':

[0-9]{1,2}h[0-5]?[0-9]|[0-5]?[0-9]

答案 2 :(得分:1)

这应该对你有用/[\dh]*/i

您的示例已经过测试here

答案 3 :(得分:0)

这是有效的正则表达式:

^\d*h?H?\d*$

请看这里:Regex Example

答案 4 :(得分:0)

使用它:

[^h]*h?[^h]*

这应该有效。