2017-08-25 93 views
0

我在reg exp中遇到了一些麻烦。我想检查一下班级名称是否“好”。 我想用reg exp解析这些。用Reg-Exp解析类名

if(ClassClass1 
theresNoClass 

我尝试这样做:

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

不过话也说回来atheresNoClass是一个很好的名字,所以我决定去检查是否有任何字母左侧:

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

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

好的范例名称:

  • 的Graphics2D
  • SomeClass的
  • 系统

坏例子:

  • 如果(类
  • (SomeClass的
  • noFunction
+0

给出例的右输错;)开始大写? – azro

+0

不清楚你在问什么,但无论如何你应该在正则表达式上查看一个好的教程。 –

+0

不要在评论中添加内容:编辑您的POST – azro

回答

0

我认为你唯一缺少的东西是匹配单词边界。

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

通过添加\b你的正则表达式的开始结束,你只会发现,是全字匹配:

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

ü最好的,谢谢! –

+0

只有4分钟,我知道 –

0

你可以使用[A-Z][a-zA-Z0-9_]+,你需要确保你没有对此案切换 - 敏感的国旗。

0

正如你唯一的要求是“必须在开始一个大写的Lettre”

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

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

采用这种结构^[A-Z]你确信不会有其他的事情,在开始大写字母,如你问

Regex demo