如何编写匹配合法key=value格式labels的正则表达式?
正则表达式匹配key=value格式的labels
需要编写正则规则匹配key=value形式的labels,要求:
- key和value仅能包含字母、数字及连字符
- - 整个字符串只能有一个
= - key和value中不能包含空格
之前尝试的正则/(-*.)=(-*.)/g无法正确匹配a-b=c-d这类格式,没法识别出正确的key和value。
合法输入示例
a=b 1=1 a-b=c-d a=b-c
非法输入示例
foo=bar ba=r=b=az b = z a-b=c - d te:st=st:ring
正确的正则表达式
使用以下正则可以满足需求:
/^[a-zA-Z0-9-]+=[a-zA-Z0-9-]+$/gm
规则说明
^:锚定字符串(或行)的开头,确保没有前置空格或无效字符[a-zA-Z0-9-]+:匹配一个或多个合法字符(字母、数字、连字符),作为key部分=:精确匹配唯一的等号,保证整个字符串只有一个分隔符[a-zA-Z0-9-]+:匹配合法的value部分$:锚定字符串(或行)的结尾,避免后置无效字符或空格g:全局匹配,用于处理多行文本中的多个labelm:多行模式,让^和$分别匹配每行的开头和结尾
这个正则会严格匹配符合要求的key=value对,拒绝所有包含空格、多个等号、特殊字符的非法输入。
内容的提问来源于stack exchange,提问作者Marc
相关产品推荐
相关产品推荐

