---
name: "trim"
section: "3tcl"
platform: "linux"
package: "tcllib"
version: "2.0+dfsg-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/trim/3tcl"
---

# trim(3tcl)

Procedures to trim strings

```

```

## NAME

textutil::trim - Procedures to trim strings

## SYNOPSIS

package require **Tcl 8.5 9**

package require **textutil::trim ?0.8?**

**::textutil::trim::trim** *string* ?*regexp*?

**::textutil::trim::trimleft** *string* ?*regexp*?

**::textutil::trim::trimright** *string* ?*regexp*?

**::textutil::trim::trimPrefix** *string* *prefix*

**::textutil::trim::trimEmptyHeading** *string*

```

```

## DESCRIPTION

The package **textutil::trim** provides commands that trim strings using arbitrary regular expressions.

The complete set of procedures is described below.

- **::textutil::trim::trim** *string* ?*regexp*?

  Remove in *string* any leading and trailing substring according to the regular expression *regexp* and return the result as a new string.  This is done for all *lines* in the string, that is any substring between 2 newline chars, or between the beginning of the string and a newline, or between a newline and the end of the string, or, if the string contain no newline, between the beginning and the end of the string. The regular expression *regexp* defaults to "\[ \\\\t\]+".

- **::textutil::trim::trimleft** *string* ?*regexp*?

  Remove in *string* any leading substring according to the regular expression *regexp* and return the result as a new string. This apply on any *line* in the string, that is any substring between 2 newline chars, or between the beginning of the string and a newline, or between a newline and the end of the string, or, if the string contain no newline, between the beginning and the end of the string. The regular expression *regexp* defaults to "\[ \\\\t\]+".

- **::textutil::trim::trimright** *string* ?*regexp*?

  Remove in *string* any trailing substring according to the regular expression *regexp* and return the result as a new string. This apply on any *line* in the string, that is any substring between 2 newline chars, or between the beginning of the string and a newline, or between a newline and the end of the string, or, if the string contain no newline, between the beginning and the end of the string. The regular expression *regexp* defaults to "\[ \\\\t\]+".

- **::textutil::trim::trimPrefix** *string* *prefix*

  Removes the *prefix* from the beginning of *string* and returns the result. The *string* is left unchanged if it doesn't have *prefix* at its beginning.

- **::textutil::trim::trimEmptyHeading** *string*

  Looks for empty lines (including lines consisting of only whitespace) at the beginning of the *string* and removes it. The modified string is returned as the result of the command.

## BUGS, IDEAS, FEEDBACK

This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category *textutil* of the *Tcllib Trackers* \[http://core.tcl.tk/tcllib/reportlist\]. Please also report any ideas for enhancements you may have for either package and/or documentation.

When proposing code changes, please provide *unified diffs*, i.e the output of **diff -u**.

Note further that *attachments* are strongly preferred over inlined patches. Attachments can be made by going to the **Edit** form of the ticket immediately after its creation, and then using the left-most button in the secondary navigation bar.

## SEE ALSO

[regexp(3tcl)](/regexp/3tcl.md), [split(3tcl)](/split/3tcl.md), [string(3tcl)](/string/3tcl.md)

## KEYWORDS

prefix, regular expression, string, trimming

## CATEGORY

Text processing
