Javascript 正则表达式匹配32个字符的混合字符字符串

Javascript 正则表达式匹配32个字符的混合字符字符串,javascript,regex,Javascript,Regex,我需要Javascript正则表达式来匹配如下字符串 loYm9vYzE6Z-aaj5lL_Og539wFer0KfD pxeGxvYzE6o97T7OD2mu_qowJdqR7NRc gwaXhuYzE6l3r1wh5ZdSkJvtK6uSw11d 它们是32个字符的字符串,混合了字母、数字、标点符号和大小写 我一直在使用/[\w-]{32}/g(实际上,var matches=inputData.body.match(/[\w-]{32}/g))-但我刚刚注意到它错误地从长度超过32个字符的

我需要Javascript正则表达式来匹配如下字符串

loYm9vYzE6Z-aaj5lL_Og539wFer0KfD

pxeGxvYzE6o97T7OD2mu_qowJdqR7NRc

gwaXhuYzE6l3r1wh5ZdSkJvtK6uSw11d

它们是32个字符的字符串,混合了字母、数字、标点符号和大小写

我一直在使用
/[\w-]{32}/g
(实际上,
var matches=inputData.body.match(/[\w-]{32}/g)
)-但我刚刚注意到它错误地从长度超过32个字符的字符串中提取匹配字符串

也就是说,它发现

“AHR0CHM6LY9HCHAUZTYS5UZXQVYXBWMI9HDWRPZW5JZS9VCHRFB3V0LZE0‌​MDEWMTQVMTQMDGXNC81‌​NjQ2MzE4Lw==“, 两个字符串“aHR0cHM6Ly9hcHAuZTJtYS5uZXQvYXBw”和 “Mi9hdWRpZW5jZS9vcHRfb3V0LzE0MDEw”

这不是正确的行为-我不想匹配一个32个字符的字符串,它只是一个较长字符串的一部分,不管这种可能性有多大。我需要使用单词边界还是什么


那会是类似于
/b/[\w-]{32}/g/b
?我不清楚其结构。

根据文件中的格式和分隔符,您可以通过多种方式执行此操作:

`\b[\w-]{32}\b` 
将强制在值周围设置单词边界

`\s[\w-]{32}\s` 
`^[\w-]{32}$` 
将强制在值周围使用空格

`\s[\w-]{32}\s` 
`^[\w-]{32}$` 
将只匹配具有32个字符值的行

`(?!([\w-=]{33})[\w-]{32}` 

将匹配任何32个字符的字符串,除非有33个字符的字符串,否则equal将从包含后续排除字符的alpha num字符串中排除最后可用的匹配。但是,为了使其适用于任何较长的字符串(提供的示例除外),它需要与我给出的前两个示例之一结合使用。

根据文件中的格式和分隔符,您可以通过多种方式执行此操作:

`\b[\w-]{32}\b` 
将强制在值周围设置单词边界

`\s[\w-]{32}\s` 
`^[\w-]{32}$` 
将强制在值周围使用空格

`\s[\w-]{32}\s` 
`^[\w-]{32}$` 
将只匹配具有32个字符值的行

`(?!([\w-=]{33})[\w-]{32}` 

将匹配任何32个字符的字符串,除非有33个字符的字符串,否则equal将从包含后续排除字符的alpha num字符串中排除最后可用的匹配。但是,为了使其适用于任何较长的字符串(提供的示例除外),它需要与我给出的前两个示例之一结合使用。

是的,单词边界(
\b
)应该可以为您解决此问题。唯一的问题是,您使用的是
/
而不是
\
,而
\b
的第二次使用被放置在
g
全局修饰符的右侧,这实际上在正则表达式模式之外。所以我想要
\b/[\w-]{32}\b/g
?我应该双斜杠\b吗?差不多。正斜杠表示许多语言中正则表达式模式的开始和结束,很像字符串周围的引号。你要找的是
/\b[\w-]{32}\b/g
。是的,单词边界(
\b
)应该能帮你解决这个问题。唯一的问题是,您使用的是
/
而不是
\
,而
\b
的第二次使用被放置在
g
全局修饰符的右侧,这实际上在正则表达式模式之外。所以我想要
\b/[\w-]{32}\b/g
?我应该双斜杠\b吗?差不多。正斜杠表示许多语言中正则表达式模式的开始和结束,很像字符串周围的引号。你要找的是
/\b[\w-]{32}\b/g