我有一个结构如下的数据文件:
FNAME:LNAME:USERNAME
我试图通过使用正则表达式来检查格式是否对此数据文件的每一行有效。
我想这样做的方式如下,除了我不确定如何设置用户名部分的表达式。
if(/([A-Z]):([A-Z]):_______/)
$ 1将给出整个名字,$ 2将给出整个姓氏。用户名由名字的第一个字母和姓氏的前四个字母组成。我不确定如何用捕获组检查这个。有没有办法让我只检查1美元和2美元的一部分而不在正则表达式本身之外创建变量?
答案 0 :(得分: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
部分