1

我有一个结构如下的数据文件:

FNAME:LNAME:USERNAME

我正在尝试使用正则表达式检查该数据文件的每一行的格式是否有效。

我想这样做的方式如下,除了我不确定如何为用户名部分设置表达式。

if(/([A-Z]):([A-Z]):_______/)

$1 将给出整个名字,$2 将给出整个姓氏。用户名由名字的第一个字母和姓氏的前四个字母组成。我不确定如何使用捕获组检查这一点。有没有办法让我只检查 $1 和 $2 的一部分而不在正则表达式本身之外创建变量?

4

1 回答 1

3

像这样的东西怎么样

/^([A-Z])[A-Z]+:([A-Z]{4})[A-Z]+:\1\2$/
  • ([A-Z])第一个捕获组。包含第一个字符FNAME

  • [A-Z]+匹配其余字符

  • ([A-Z]{4})第二个字符。包含4来自的字符LNAME

  • [A-Z]+匹配其余字符

  • \1\2第一个和第二个捕获组的内容构成USERNAME部分

于 2014-12-08T17:31:43.980 回答