This page is part of a static HTML representation of the TiddlyWiki at https://tiddlywiki.com/

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

Note
... 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[\]]

Examples


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.

Warning:
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[, ]] }}}