Split text into items using your chosen delimiter

Paste text, choose where to split it, then review each item on a separate line before copying or downloading TXT.

Paste text and choose a split point

Processed in your browser · saves drafts when allowed Ready
Split items

Split text into a list in three steps

01

Paste text

Paste the content you want to divide. Check what separates its items, such as commas, line breaks or another marker.

Choose where your text should split

Input patternChoose Split byCheck the result
One item per lineLine breakOriginal order stays the same; decide whether empty line positions matter.
Items separated by commasCommaEvery comma splits, even inside quoted values; review before using the result as CSV data.
Items separated by whitespaceWhitespaceSpaces, tabs and line breaks all split items; avoid this mode if multiword phrases must stay together.
Sentences with clear end marksSentenceSplits after a period, exclamation mark or question mark followed by whitespace; review abbreviations and unpunctuated text.
A marker such as “ | ”Custom delimiterEnter the exact text to find, including spaces if present; the marker is removed from the items.

If the items split incorrectly

An item splits in the middle
The separator occurs inside an item, such as a comma in a quoted value. This tool splits on characters, not CSV rules. Use another marker if available, or prepare the list first.
Empty items appear or positions disappear
Two adjacent separators create an empty item. Enable Remove empty items to drop it; leave the option off if the empty position matters. Trim each item only removes spaces at item edges.
Sentence mode looks wrong
This mode looks for a period, exclamation mark or question mark followed by whitespace. Abbreviations may split, while unpunctuated line breaks stay in an item. Review the text or use Line break when that is the real boundary.

Drafts on this device when available

Your text is split in the browser. When local storage is available, the input and options are kept for next time. Select Clear to remove this tool’s input, result and draft; downloaded TXT files stay where you saved them.

Comments & feedback

Rate this tool

Loading ratings…

Write a commentNo account needed

Do not share passwords, sensitive information or the contents of files you are processing.

Reviewed before posting. Email stays private.

Embed this tool on your websiteFree · Copy once, receive tool updates automatically

Paste the iframe into HTML, WordPress or any platform that supports embeds. The tool runs in the visitor’s browser; adjust its height and theme as needed.

View the embed guide and supported platforms →

<div style="max-width:900px">
  <iframe data-kitotool-embed src="https://kitotool.com/embed/en/text-splitter/" title="Text Splitter — KitoTool" width="100%" height="920" style="display:block;width:100%;border:1px solid #dbe3ee;border-radius:12px" loading="lazy" referrerpolicy="strict-origin-when-cross-origin"></iframe>
  <p style="margin:6px 2px 0;text-align:right;font:12px/1.5 system-ui,sans-serif;color:#64748b">Free tool by <a href="https://kitotool.com/en/text-splitter/" target="_blank" rel="nofollow noopener noreferrer" style="color:#2359d4;text-decoration:underline">KitoTool</a></p>
</div>

The code includes a visible credit below the iframe; its link uses nofollow for a widely distributed widget.

Optional: automatically resize the iframe

Add this script once to the page containing the iframe.

<script>
(function(){var origin="https://kitotool.com";function frames(){return document.querySelectorAll("iframe[data-kitotool-embed]")}function measure(f){if(f.contentWindow&&new URL(f.src).origin===origin)f.contentWindow.postMessage({type:"kitotool:measure"},origin)}window.addEventListener("message",function(e){if(e.origin!==origin||!e.data||e.data.type!=="kitotool:resize"||!Number.isFinite(e.data.height))return;frames().forEach(function(f){if(f.contentWindow===e.source&&new URL(f.src).origin===origin)f.style.height=Math.max(320,Math.min(12000,Math.ceil(e.data.height)))+"px";});});function connect(){frames().forEach(function(f){f.addEventListener("load",function(){measure(f)});measure(f)})}if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",connect,{once:true});else connect()})();
</script>