我需要一个正则表达式模式来匹配以下结构的驼峰式 BEM 类:
BlockName_elementName-modifierName
我创建了这个正则表达式来完成这项工作:
([A-Z][a-z0-9]+)+(\_[a-z0-9]+[A-Z0-9]?[a-z0-9]*)?(\-[a-z0-9]+[A-Z0-9]?[a-z0-9]*)?
应匹配的字符串示例:
Block
BlockName
BlockNameLonger
BlockName93
BlockName_element
BlockName_elementName
BlockName_elementNameLonger
BlockName_4elementName
BlockName_elementName-modifier
BlockName_elementName-modifierName
BlockName_elementName-modifierNameLonger
BlockName_elementName-modifier567Name
目前它匹配除“更长”字符串之外的所有字符串。我无法弄清楚如何正确分组以匹配任何长度的骆驼案例组。任何人都可以帮忙吗?
在此处查看演示:http ://regexr.com/3h0sf