在C#中使用Regex匹配10或12位数字

时间:2018-07-14 08:02:32

标签: c# regex

我是C#的新手,来自PHP背景。

我只想用以下正则表达式声明只验证10位和12位数字。 我有正确的正则表达式。但是如果经过测试,我仍然会收到无效的数字错误

请指出我在这里做错的地方。 代码已编译,没有任何问题。

  // To validate 10 digits or 10 digits only

  string regxstr = "^(?=[0-9]*$)(?:.{10}|.{12})$";

  if (Regex.IsMatch(Data.number, regxstr))
  {
     return "Valid number";
  }
  else {
    return "Invalid number";
  }                

2 个答案:

答案 0 :(得分:1)

我想知道为什么不使用简单的正则表达式来表示这样的内容:

function rel_next_prev(){
    global $paged;

    if ( get_previous_posts_link() ) { ?>
        <link rel="prev" href="<?php echo get_pagenum_link( $paged - 1 ); ?>" /><?php
    }

    if ( get_next_posts_link() ) { ?>
        <link rel="next" href="<?php echo get_pagenum_link( $paged +1 ); ?>" /><?php
    }

}
add_action( 'wp_head', 'rel_next_prev' );

答案 1 :(得分:1)

您的测试数据不只包含数字。

您可以简化正则表达式以将10位数字\d{10}与匹配的可选组匹配2位数字(?:\d{2})?

^\d{10}(?:\d{2})?$

Demo