2015-06-23 38 views
1

我創建了一個正則表達式匹配以下scenerios:SomethingCool,HelloWorld的,MyNameIsDonato,等等。但是,它不佔空間:駝峯正則表達式不佔空間

> 'Something Cooler' =~ /([A-Z][a-z0-9]+)+/ 
=> 0 

那流逝,它不應該通過。空格不是字母數字字符。那麼爲什麼這樣通過,我該如何解決?

+2

順便說一下,這裏的匹配是'Something',而不是整個字符串。 – mudasobwa

回答

2

您需要的正則表達式錨定到字符串的開頭和結尾,或者它只會匹配的一個關鍵詞:

^([A-Z][a-z0-9]+)+$ 

^$錨分別開始和線路的兩端。要定位到字符串的開頭和結尾,請使用\A\Z

值得注意的是,如果您試圖在較大的字符串中查找camelcase名稱,這是無用的。爲此,請使用您的原始正則表達式。

+0

這正是我正在尋找的。我會在15分鐘內回覆你的答案。 – Donato

+0

@ Donato:很高興能幫到你。 – Linuxios

+1

請始終使用'\ A'和'\ z'來代替'^'和'$',以防止錯誤匹配CamelCase \ neval('rm -rf /')「'。 – mudasobwa