求助:如何编写匹配特定前缀格式的正则表达式
正则表达式解决方案
你的尝试[a-zA-Z0-9]{1,20}[_-]+只能匹配单段字母数字加分隔符,无法覆盖多段重复组合的场景,以下是符合需求的正则:
基础版(允许前缀为单段或多段组合)
^[a-zA-Z0-9]{1,20}(?:[-_][a-zA-Z0-9]{1,20})*
强制多段版(要求前缀至少包含一个分隔符,即至少两段字母数字)
^[a-zA-Z0-9]{1,20}(?:[-_][a-zA-Z0-9]{1,20})+
规则解释
^:锚定字符串开头,确保匹配从最起始位置开始[a-zA-Z0-9]{1,20}:匹配1-20位字母数字组成的基础段(?:[-_][a-zA-Z0-9]{1,20})*:非捕获组,匹配“分隔符(-或_)+1-20位字母数字”的组合,*表示可重复0次及以上;换成+则要求至少重复1次
用这个正则匹配目标字符串,只要匹配结果不为空,就说明字符串符合开头格式要求。
内容的提问来源于stack exchange,提问作者Cesar Lopes
相关产品推荐
相关产品推荐

