正则表达式匹配哈希URL字符串

Regular expression to match hash URL string

本文关键字:URL 字符串 哈希 正则表达式      更新时间:2023-09-26

我有一个url路由,我想匹配只有url参数

router.get('/:id',function(req,res,next){
}

现在的问题是其他url,如test, favicon都匹配这个路径。我想只匹配url路径,这是哈希和其他相关的哈希字符串,这将是随机的。

%242a%2410%24mbh0scotTihKwL69eKwVBuSoAShai4Qo8yY0HLPRlh0Pq0ospfAcm 

我已经尝试过正则表达式,但是,我似乎没有得到我的正则表达式匹配。

[a-z0-9][-!$%^&*()_+|~=`{}'[']:";'<>?,.'/]{50,}$

我想匹配任何长度为50及以上的特殊字符的字符串。有人能帮助我吗?谢谢你

我想匹配长度大于等于50的特殊字符的字符串

在这种情况下,您可以使用以下模式:

^[-a-zA-Z0-9!$%^&*()_+|~=`{}'[']:";'<>?,.'/]{50,}$

但是,如果您需要要求第一个字符是ASCII字母或数字,您可以通过将模式重写为如下方式来实现:

^[a-zA-Z0-9][-a-zA-Z0-9!$%^&*()_+|~=`{}'[']:";'<>?,.'/]{49,}$
 ^^^^^^^^^^^                                           ^^^^ 

或者通过使用前瞻性(以便将50保持为最小参数)(参见本演示):

^(?=[a-zA-Z0-9])[-a-zA-Z0-9!$%^&*()_+|~=`{}'[']:";'<>?,.'/]{50,}$

在所有情况下,主要的一点是,你需要调整限制量词在结束/移动字符类边界,并确保你使用^,字符串锚的开始,如果你的子字符串是在字符串的开始。