I would like to check if a string is a camel case or not (boolean). I am inclined to use a regex but any other elegant solution would work. I wrote a simple regex
(?:[A-Z])(?:[a-z])+(?:[A-Z])(?:[a-z])+
Would this be correct? Or am I missing something?
Edit
I would like to capture names in a collection of text documents of the format
McDowell O'Connor T.Kasting
Edit2
I have modified my regex based on the suggestion in the comments
(?:[A-Z])(?:S?)+(?:[A-Z])(?:[a-z])+
Advertisement
Answer
You could check if a string has both upper and lowercase.
def is_camel_case(s): return s != s.lower() and s != s.upper() and "_" not in s tests = [ "camel", "camelCase", "CamelCase", "CAMELCASE", "camelcase", "Camelcase", "Case", "camel_case", ] for test in tests: print(test, is_camel_case(test))
Output:
camel False camelCase True CamelCase True CAMELCASE False camelcase False Camelcase True Case True camel_case False