我創建了一個正則表達式匹配以下scenerios:SomethingCool,HelloWorld的,MyNameIsDonato,等等。但是,它不佔空間:駝峯正則表達式不佔空間
> 'Something Cooler' =~ /([A-Z][a-z0-9]+)+/
=> 0
那流逝,它不應該通過。空格不是字母數字字符。那麼爲什麼這樣通過,我該如何解決?
我創建了一個正則表達式匹配以下scenerios:SomethingCool,HelloWorld的,MyNameIsDonato,等等。但是,它不佔空間:駝峯正則表達式不佔空間
> 'Something Cooler' =~ /([A-Z][a-z0-9]+)+/
=> 0
那流逝,它不應該通過。空格不是字母數字字符。那麼爲什麼這樣通過,我該如何解決?
您需要的正則表達式錨定到字符串的開頭和結尾,或者它只會匹配的一個關鍵詞:
^([A-Z][a-z0-9]+)+$
^
和$
錨分別開始和線路的兩端。要定位到字符串的開頭和結尾,請使用\A
和\Z
。
值得注意的是,如果您試圖在較大的字符串中查找camelcase名稱,這是無用的。爲此,請使用您的原始正則表達式。
順便說一下,這裏的匹配是'Something',而不是整個字符串。 – mudasobwa