Regular Expressions

Regular expressions allow us to describe patterns in strings. In mathlayer® the following functions handle regular expressions: regexp, regexprep and regexptranslate
Expression Meaning
^ Matches the beginning of a line
$ Matches the end of the line
. Matches any character
\s Matches whitespace
\S Matches any non-whitespace character
* Repeats a character zero or more times
*? Repeats a character zero or more times (non-greedy)
+ Repeats a character one or more times
+? Repeats a character one or more times (non-greedy)
[aeiou] Matches a single character in the listed set
[^XYZ] Matches a single character not in the listed set
[a-z0-9] The set of characters can include a range
\w Matches the ASCII characters [A-Za-z0-9_], stands for "word character"

regexp

regexp function is used in order to match a regular expression. In case of two input arguments only, regexp returns the indexes where the regular expression has been matched:

>> x = 'a 12 3 b 10 c 9 ef'
m = regexp(x, {'[0-9]+'}) 

% match any number in string x

m{:,:}# 3 6 10 15 >> x = 'a 12 3 b 10 c 9 ef' m = regexp(x, {'[0-9]+'},'match') m{:,:}# [12][3][10][9]
>> str = 'Show which words have the letter h'
expression = '\w*h\w*'; 

% any word with 'h'

m = regexp(str,expression,'match')# [Show][which][have][the][h]
>> str = 'Split in different words'
splitstring = regexp(str,'\s','split')# 

% whitespace

[Split][in][different][words]

regexprep

regexprep function replaces matched regular expressions with the desired string:

>> str= '<div id="examples"><h3>Examples</h3></div>' 
regexprep(str, '<.*?>','')# 

% remove any character between < and >

Examples

Special characters

To use any special characters as literal, we need to escape them with a backslash:

>> str = '5+3'
regexprep(str, '\+','-')#

5-3

We can use the function regexptranslate to do it automatically.

>> str = '\t means tabulation';
regexp(str, '\t')#



>> exp = regexptranslate('escape', '\t')#

\\t

>> regexp(str, exp)#

 1

Related functions

regexp | regexprep | regexptranslate