想要一个正则表达式来验证数字格式

时间:2015-02-06 19:41:14

标签: regex

我有一个特定的数字格式:1-2345678908765其中第一个数字由' - '分隔。跟随它的十三个数字。我尝试使用:

[]?[0-9]\-^[0-9]{1,13}$

但没有奏效。

先谢谢

Sanjay Suman

5 个答案:

答案 0 :(得分:3)

您的正则表达式语法似乎格式不正确,第一个问题是[]?[0-9]如果使用(PCRE)形成一个与该组字符中的任何一个字符匹配的字符类。

否则,[]?执行零宽度匹配,因为您有一个空的可选类。

在连字符后面还有一个字符串^锚点的开头,其中以下数字不会在字符串中的给定位置处断言。

您可以改用以下正则表达式:

^[0-9]-[0-9]{13}$

<强>解释

^            # the beginning of the string
 [0-9]       #   any character of: '0' to '9'
 -           #   '-'
 [0-9]{13}   #   any character of: '0' to '9' (13 times)
$            # before an optional \n, and the end of the string

<强> Live Demo

答案 1 :(得分:0)

"/^[0-9][-][0-9]{13}$/"

它将匹配一个数字,然后是1个超级,然后是13个数字。

答案 2 :(得分:0)

尝试/^[0-9][\-][0-9]{13}$/gm

您可以在regexr.com

上测试正则表达式

答案 3 :(得分:0)

我最后修好了。

[] [0-9] - [0-9] {13}

答案 4 :(得分:0)

请尝试进行分组,这可能对您将来的需求有用,例如:查找和替换。如果要查找以“1”开头的所有行:

(^ 1 {1}) - ([0-9] {13})

要交换第一个和第二个值,您只需要在NotePad ++的“替换”文本框中输入“\ 2- \ 1”。

enter image description here

BTW - 请检查https://www.regex101.com/以了解您的需求。