2015-06-23 2 views
1

Я создал регулярное выражение, чтобы соответствовать следующим scenerios: SomethingCool, HelloWorld, MyNameIsDonato и т.д. Тем не менее, он не учитывает пространства:CamelCase регулярного выражения без учета пробелов

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

Это проходит, и это не должно пройти , Пробел не является буквенно-цифровым символом. Так почему это проходит и как я могу это исправить?

+2

Кстати, матч здесь 'Something', а не целая строка. – mudasobwa

ответ

2

Вы должны закрепить регулярное выражение в начале и в конце строки, или он просто будет соответствовать один из слов:

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

^ и $ якорь начала и концы линий, соответственно. Для привязки к началу и концу строки используйте \A и \Z.

Стоит отметить, что это бесполезно, если вы пытаетесь найти имена верблюдов в большей строке. Для этого используйте свое исходное регулярное выражение.

+0

Это именно то, что я ищу. Я отвечу на ваш ответ через 15 минут. – Donato

+0

@ Донато: Рад, что я мог бы помочь. – Linuxios

+1

Пожалуйста, всегда используйте '\ A' и' \ z' вместо '^' и '$' для предотвращения ложного совпадения '' CamelCase \ neval ('rm -rf /') "'. – mudasobwa

Смежные вопросы