匹配Camel和Pascal Case的正则表达式

时间:2010-01-20 17:47:07

标签: regex parsing camelcasing pascalcasing

我即将为一种语言编写解析器,该语言应该具有关于类型,变量等命名的严格语法规则。例如,所有类必须为PascalCase,并且所有变量/参数名称和其他标识符必须为camelCase。

例如,HTMLParser不允许,且必须命名为HtmlParser。有关正则表达式的任何想法可以匹配PascalCase,但没有两个大写字母吗?

4 个答案:

答案 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]*)

这应该适用于:

  1. MadeEasy
  2. WonderFul
  3. AndMe

这种模式。