w3resource

Python: Convert a given string to snake case

Python Regular Expression: Exercise-55 with Solution

Snake case (stylized as snake_case) refers to the style of writing in which each space is replaced by an dash (-) character, and the first letter of each word written in lowercase. It is a commonly used naming convention in computing, for example for variable and subroutine names, and for filenames. One study has found that readers can recognize snake case values more quickly than camel case.

Write a Python program to convert a given string to snake case.

  • Use re.sub() to replace any - or _ with a space, using the regexp r"(_|-)+".
  • Use re.sub() to match all words in the string, str.lower() to lowercase them.
  • Finally, use str.join() to combine all word using - as the separator.

Sample Solution:

Python Code:

from re import sub
def snake_case(s):
  return '-'.join(
    sub(r"(\s|_|-)+"," ",
    sub(r"[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+",
    lambda mo: ' ' + mo.group(0).lower(), s)).split())
 
print(snake_case('JavaScript'))
print(snake_case('GDScript'))
print(snake_case('BTW...what *do* you call that naming style? snake_case? '))

Sample Output:

java-script
gd-script
btw...-what-*-do*-you-call-that-naming-style?-snake-case?

Flowchart:

Flowchart: Regular Expression -  Convert a given string to snake case.

Python Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a Python program to concatenate the consecutive numbers in a given string.
Next: Write a Python program that takes any number of iterable objects or objects with a length property and returns the longest one.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://198.211.115.131/python-exercises/re/python-re-exercise-55.php