This page is part of a static HTML representation of the TiddlyWiki at

splitregexp Operator

 6th June 2024 at 11:34am
purposereturns each item in the list split into separate strings according to the specified regular expression R
inputa selection of titles
suffixflags: m for multiline mode, i for case-insensitive mode
parameterR=The regular expression at which to split each title
outputthe input titles split into separate items according to the specified regular expression R

Learn more about how to use Filters

Introduced in v5.1.20

... that in some circumstances the splitregexp operator will include blank items in the list of results. For example,

[[the band thethe are the best the]splitregexp[the]]

The following results are returned:

["", " band ", "", " are ", " best ", ""]

Where it might be expected that the results would be:

[" band ", " are ", " best "]

The blank items mark the boundaries between matches. If they are not required they can be removed with the blank category of the is Operator: [[the band thethe are the best the]splitregexp[the]!is[blank]].

The reason that the blank items can be useful is that they allow search and replace operations to be constructed from a combination of the split Operator or splitregexp Operator and the join Operator. For example:

[[nobody, really; wants; to see -- all this \punctuation]splitregexp[,|;|-|\\]join[...]]

Syntax errors in the regular expression will cause the filter to return an error message. For example:

[[the cat sat on the mat]splitregexp[\]]


The splitregexp operator is intended to be used as described above. If the regexp contains capture groups those groups will be included into the output.

Don't do it this way!
\procedure re() (color)|(colour)ed
\procedure str() Some coloured text
{{{ [<str>splitregexp<re>join[, ]] }}}

Somewhat more useful may be this code.

\procedure re() (colou?red)
\procedure str() Some coloured text
{{{ [<str>splitregexp<re>join[, ]] }}}