2017-08-25 78 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