使用Reg-Exp解析类名

时间:2017-08-25 07:12:49

标签: java

我对reg exp有些麻烦。我想检查一个班级名称是否是好的"。 我想用reg exp解析这些。

if(ClassClass1
theresNoClass

我试过了:

[A-Z][a-zA-Z]+

但它也说atheresNoClass是一个好名字,所以我决定检查左边是否有任何字母:

[^a-z][A-Z][a-zA-Z]+

但是'('通过了,我不需要它。

类名的好例子:

  • 的Graphics2D
  • SomeClass的
  • 系统

错误的例子:

  • if(Class
  • (SomeClass的
  • noFunction

3 个答案:

答案 0 :(得分:0)

我认为你在这里唯一缺少的就是匹配单词边界。

正则表达式\b匹配单词边界。你现在遇到的问题是它匹配以大写字符开头的所有内容(例如NoClass),即使它在一个单词内。

通过在正则表达式的开头末尾添加\b,您只能找到整个单词的匹配项:

\b[A-Z][a-zA-Z0-9]+\b

答案 1 :(得分:0)

您可以使用[A-Z][a-zA-Z0-9_]+,并且需要确保没有打开不区分大小写的标记。

答案 2 :(得分:0)

正如你唯一的要求是“开始时有一个大写字母”

所以你应该使用:^[A-Z][a-zA-Z0-9]+

  • ^说必须是tex的开头
  • [A-Z]说大写字母
  • [a-zA-Z0-9]+说一个或多个字母或数字(\ w也有'_'也不好)

使用此结构^[A-Z],您确定在开头没有其他大写字母的内容,正如您所要求的那样

Regex demo

相关问题