我即将为一种语言编写一个解析器,该语言应该对类型、变量等的命名有严格的句法规则。例如,所有类必须是 PascalCase,所有变量/参数名称和其他标识符必须是 camelCase。
例如HTMLParser
不允许,必须命名HtmlParser
。任何可以匹配PascalCase但没有两个大写字母的正则表达式的想法?
我即将为一种语言编写一个解析器,该语言应该对类型、变量等的命名有严格的句法规则。例如,所有类必须是 PascalCase,所有变量/参数名称和其他标识符必须是 camelCase。
例如HTMLParser
不允许,必须命名HtmlParser
。任何可以匹配PascalCase但没有两个大写字母的正则表达式的想法?
骆驼香烟盒:
^[a-z]+(?:[A-Z][a-z]+)*$
帕斯卡案例:
^[A-Z][a-z]+(?:[A-Z][a-z]+)*$
/([A-Z][a-z]+)*[A-Z][a-z]*/
但我不得不说你的命名选择很糟糕,应该允许和首选 HTMLParser。
我不相信列出的项目可以以数字开头(我以为我在某处读过它,所以请谨慎对待)所以最好的情况是像 Roger Pate 的一些小修改(在我看来)
/^([A-Z][a-z0-9]+)*[A-Z][a-z0-9]*$/
应该类似于查找大写字母,然后是至少一个小写字母或数字,或者更多,并且看起来它只处理一个大写字母,因为这似乎是必需的,但其他字母是可选的。
祝你好运
^[A-Z][a-z]*([A-Z][a-z]*)
这应该适用于:
这种类型的模式。