我要写分析器,一种语言,应该有严格的语法规则的关于命名的类型、变量和这样的。例如,所有课 必须 被PascalCase,所有的变量参数和其他标识符 必须 被驼峰式.

例如 HTMLParser 是不允许的,并且必须被命名为 HtmlParser.任何想法regexp,可以匹配的东西是PascalCase,但是没有两个大写字母吗?

有帮助吗?

解决方案

<强>驼峰:

^[a-z]+(?:[A-Z][a-z]+)*$

<强> PascalCase:

^[A-Z][a-z]+(?:[A-Z][a-z]+)*$

其他提示

/([A-Z][a-z]+)*[A-Z][a-z]*/

但我不得不说,你的命名选择太臭,HTMLParser的应该被允许和首选。

我不相信上市可以以数字开头的项目(还以为我读它的地方,所以把它与盐粮),所以最好的情况是像罗杰·佩特与一些小的修改(在我看来)

/([A-Z][a-z0-9]+)*[A-Z][a-z0-9]*/

应该是这样的,找一个大写字母,那么至少有一个小的情况下或号码,以上,以及它看起来像它处理一样,这似乎是需要一个大写字母,但附加字母可选的。

好运

^[A-Z][a-z]*([A-Z][a-z]*)

这应该适用于:

  1. MadeEasy
  2. 美妙的
  3. AndMe

这种类型的模式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top