如何使用正则表达式匹配精确以/?开头后接键值对的字符串
符合要求的正则表达式
基础版本(适配单键值对场景,完全匹配你给出的示例)
^\/\?[a-zA-Z0-9_]+=[a-zA-Z0-9_]+$
规则解释:
^:限定匹配从字符串起始位置开始,保证前缀完全符合要求\/\?:精确匹配开头的/?,/和?属于正则特殊字符,需要用反斜杠\转义[a-zA-Z0-9_]+:匹配key内容,默认允许大小写字母、数字、下划线,可根据实际业务调整允许的字符范围,比如需要支持横杠可修改为[a-zA-Z0-9_\-]+=:精确匹配键值对中间的等号[a-zA-Z0-9_]+:匹配value内容,字符范围可按需调整$:限定匹配到字符串结束位置,避免出现不符合规则的后缀内容
扩展版本(支持&分隔的多键值对场景)
如果后续需要匹配/?x=123&y=456这类多参数格式,可以使用如下正则:
^\/\?[a-zA-Z0-9_]+=[^&]+(?:&[a-zA-Z0-9_]+=[^&]+)*$
内容的提问来源于stack exchange,提问作者AJ Goudel
相关产品推荐
相关产品推荐

