Skip to content
Case Converter Online

snake_case Converter

snake_case joins lowercased words with underscores. It is the everyday style for Python functions, Ruby methods, and many database column names—readable in monospace and friendly to CSV headers. Words stay separate, just quieter.

0 words0 characters0 lines
Convert to

Example

Input

XMLHttpRequest retry Count

Output

xml_http_request_retry_count

How the conversion works

The converter finds words using spaces, hyphens, underscores, camelCase edges, and acronym boundaries. “XMLHttpRequest” becomes xml_http_request. Letter–digit boundaries split too, so order42Id becomes order_42_id. Extra punctuation is treated as a separator and dropped so the result stays a clean identifier. Acronyms and camelCase edges become separate underscore-separated words in the output.

When snake_case helps

Underscores stay readable in terminals and SQL clients and avoid the shift-key gymnastics of capitals. They map cleanly to CSV headers and unquoted SQL identifiers in most dialects. Backend APIs that speak Python or Ruby often prefer snake_case on the wire even when the frontend uses camelCase. Data teams convert dashboard titles into warehouse columns without inventing underscores by hand. Many data warehouses and ORMs accept snake_case columns without quoting.

Working with multiple lines

Paste a list and each line converts on its own. Empty lines remain empty so you can transform a whole column of labels without losing structure. That makes it easy to rename a spreadsheet column of headers in one pass. Need an uppercase constant instead? CONSTANT_CASE uses the same word breaks with capitals.

Common use cases

Frequently asked questions

Is the output always lowercase?

Yes. Words are lowercased, then joined with underscores. Use CONSTANT_CASE if you need capitals.

How do acronyms look after conversion?

They split into pieces: HTTPServer → http_server, XMLHttpRequest → xml_http_request.

What about leading numbers?

Numbers are kept as their own segments. For example, “2fa token” becomes 2_fa_token because digits and letters split at the boundary. Some languages still disallow leading digits in identifiers—check your language rules.

Can I go back to camelCase later?

Yes. Paste the snake_case result and choose camelCase; word boundaries from the underscores are respected.