我即将为一种语言编写解析器,该语言应该具有关于类型,变量等命名的严格语法规则。例如,所有类必须为PascalCase,并且所有变量/参数名称和其他标识符必须为camelCase。
例如,HTMLParser
不允许,且必须命名为HtmlParser
。有关正则表达式的任何想法可以匹配PascalCase,但没有两个大写字母吗?
答案 0 :(得分:7)
<强>驼峰:强>
^[a-z]+(?:[A-Z][a-z]+)*$
<强> PascalCase:强>
^[A-Z][a-z]+(?:[A-Z][a-z]+)*$
答案 1 :(得分:3)
/([A-Z][a-z]+)*[A-Z][a-z]*/
但我必须说你的命名选择很糟糕,HTMLParser应该被允许并且首选。
答案 2 :(得分:1)
我不相信列出的项目可以从数字开始(我以为我在某个地方读到了它,所以最好用一些盐)所以最好的情况就像罗杰帕特的一些小修改(在我看来)
/([A-Z][a-z0-9]+)*[A-Z][a-z0-9]*/
应该是这样的,寻找一个大写字母,然后至少一个小案例或数字,或更多,以及看起来它只处理一个大写字母似乎是必需的,但附加的字母是可选的。
祝你好运答案 3 :(得分:0)
^[A-Z][a-z]*([A-Z][a-z]*)
这应该适用于:
这种模式。