6

我正在尝试为大骆驼和小骆驼的情况提出一个正则表达式。

这是我尝试过的

(([A-Z][a-z0-9]*){2,}|([a-z][A-Z0-9]*){2,})

尝试将大驼峰大小写与 - ([AZ][a-z0-9] ){2,} 匹配,但它也匹配其他组合。第二部分的情况类似 - ([az][A-Z0-9] ){2,})

4

2 回答 2

4

这将匹配单词中至少包含一个大写字母的大写和小写驼峰式短语。

上骆驼案

[A-Z][a-z0-9]*[A-Z0-9][a-z0-9]+[A-Za-z0-9]*

示例:HelloWorld、AQuickBrownFox

下骆驼案

[a-z]+[A-Z0-9][a-z0-9]+[A-Za-z0-9]*

示例:helloWorld、aQuickBrownFox

于 2013-09-26T07:49:30.320 回答
0

对于 lowerCamelCase,您需要:

  1. 小写字母
  2. 至少一个(lowerCaseLetter 或 UpperCaseLetter 或 numb3r)

所以一个适当的正则表达式将是

[a-z][a-zA-Z0-9]+

同样,对于 UpperCamelCase,您将拥有[A-Z][a-zA-Z0-9]+,如果将它们分组,您将获得

[a-zA-Z][a-zA-Z0-9]+

编辑:如果您严格要求一个单词是驼峰式单词,它需要有一个“驼峰”,其中驼峰是大写字母或数字,您需要:

  1. 大写或小写字母,后跟
  2. 其他小写字母(可能没有),后跟
  3. 一个驼峰,随后
  4. 其他小写字母(可能没有),
  5. 可能后面跟着另一个驼峰

那么你的正则表达式是:

[a-zA-Z][a-z]*([A-Z0-9]+[a-z]*)+

正则表达式小提琴

于 2013-09-26T07:29:26.903 回答