Javascript 这可以用正则表达式完成吗?在字符串中找到我的密钥

Javascript 这可以用正则表达式完成吗?在字符串中找到我的密钥,javascript,regex,Javascript,Regex,我有regex/[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}/gm来匹配这样的键模式aaaaaaaaaaaaaaaaaaaaaaa 现在我想修改这个正则表达式以匹配这些示例中的键模式: "AAAAA-AAAAA-AAAAA", "dasd:AAAAA-AAAAA-AAAAA.ds", "AAAAA-AAAAA-AAAAA:dsad", "das.AAAAA-AAAAA-AAAAA&q

我有regex
/[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}/gm
来匹配这样的键模式
aaaaaaaaaaaaaaaaaaaaaaa

现在我想修改这个正则表达式以匹配这些示例中的键模式:

"AAAAA-AAAAA-AAAAA",
"dasd:AAAAA-AAAAA-AAAAA.ds",
"AAAAA-AAAAA-AAAAA:dsad",
"das.AAAAA-AAAAA-AAAAA",
"df:AAAAA-AAAAA-AAAAA:das",
"AAAAA-AAAAA-AAAAA asdas",
"dsad adf AAAAA-AAAAA-AAAAA",
"AAAAA-AAAAA-AAAAA adasd asd"
"AAAAA-AAAAA-AAAAA-aaaaaaa",
"sadasAAAAA-AAAAA-AAAAA",
"AAAAA-AAAAA-AAAAAdasd",
"dsa-AAAAA-AAAAA-AAAAA-das",
"adsAAAAA-AAAAA-AAAAAasd"
但不要在这些例子中找到匹配项:

"AAAAA-AAAAA-AAAAA",
"dasd:AAAAA-AAAAA-AAAAA.ds",
"AAAAA-AAAAA-AAAAA:dsad",
"das.AAAAA-AAAAA-AAAAA",
"df:AAAAA-AAAAA-AAAAA:das",
"AAAAA-AAAAA-AAAAA asdas",
"dsad adf AAAAA-AAAAA-AAAAA",
"AAAAA-AAAAA-AAAAA adasd asd"
"AAAAA-AAAAA-AAAAA-aaaaaaa",
"sadasAAAAA-AAAAA-AAAAA",
"AAAAA-AAAAA-AAAAAdasd",
"dsa-AAAAA-AAAAA-AAAAA-das",
"adsAAAAA-AAAAA-AAAAAasd"
因此,描述是:如果
[a-zA-Z0-9]
-
在键模式之前或之后,我不想匹配它

我试过类似的方法(^[a-zA-Z0-9])?[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}(^[a-zA-Z0-9])?,但这不起作用


这可以只使用正则表达式来完成,还是需要额外的代码来完成?

您可以在左右两侧使用单词边界
\b
来防止部分匹配,并且在模式的末尾使用负向前看
(?!-)
来不直接在当前位置的左侧声明连字符

\b[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}\b(?!-)

const regex=/\b[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}\b(?)/;
[
“AAAAA-AAAAA-AAAAA”,
“dasd:AAAAA-AAAAA-AAAAA.ds”,
“AAAAA-AAAAA-AAAAA:dsad”,
“das.AAAAA-AAAAA-AAAAA”,
“df:AAAAA-AAAAA-AAAAA:das”,
“AAAAA-AAAAA-AAAAA asdas”,
“dsad adf AAAAA-AAAAA-AAAAA”,
“AAAAA-AAAAA-AAAAA adasd”,
“AAAAA-AAAAA-AAAAA-AAAAAAAA”,
“sadasAAAAA-aaaaaa-aaaaaa”,
“AAAAA-AAAAA-AAAAA DASD”,
“dsa-AAAAA-AAAAA-AAAAA-das”,
“adsAAAAA-AAAAA-AAAAA ASD”
].forEach(s=>{
常量匹配=s.match(正则表达式);
log(匹配?${s}-->${match[0]}`:`${s}-->不匹配`);

})
像这样吗<代码>\b[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}\b(?),或者使用一个捕获组
^-\n]*\b([a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-Z0-9]-[a-Z0-9]{5}-[a-zA-Z0-9]}-$$$$
,我不知道为什么这样做。谢谢:)@GuerricP我的意思是,每个字符串都是一个新字符串,用于尝试匹配。不是全部