如何创建此RegExp

How To Create This RegExp

本文关键字:RegExp 创建 何创建      更新时间:2023-09-26

我想在一个字符串中找到这个:XXXX-XXXX-XXX其中X是任何数字。

我需要在一个使用JavaScript的字符串中找到这一点,所以那些可以为我提供JavaScript的人也可以获得奖励。我尝试创建一个正则表达式,结果是:^[0-9]{4}'-[0-9]{3}'-[0-9]{3}$

此外,我很想知道你们用来创建正则表达式的备忘单或程序。

我想这就是你想要的:

'd{4}-'d{3}-'d{3} 

有疑问吗?谷歌搜索"RegEx测试人员"

尝试:

^[0-9]{4}'-[0-9]{3}'-[0-9]{3}$

由于-不是元字符,因此不需要对其进行转义——因此您正在寻找显式反斜杠字符。

此外,您已经将匹配锚定在字符串的开头和结尾——这将只匹配由数字的组成的字符串。(好吧,假设其他都是正确的。)

我知道大多数人都喜欢{3}式的计数,但当匹配的是个位数时,我发现这更容易辨认:

'd'd'd'd-'d'd'd-'d'd'd

显然,如果你想将其扩展到匹配的十六进制数字,那么扩展这个数字将是可怕的,但我认为这比其他选择要清晰得多:

'd{4}-'d{3}-'d{3}
[[:digit:]]{4}-[[:digit:]]{3}-[[:digit:]]{3}
[0-9]{4}-[0-9]{3}-[0-9]{3}

选择你最容易阅读的内容。

我倾向于使用perlre(1)手册页作为我的主要参考,因为我非常清楚它比许多regexp引擎更具特色。考虑到perlre手册页在大多数系统上的可用性,我准备处理这些差异。

var result = (/'d{4}'-'d{3}'-'d{3}/).exec(myString);