Main Content

digitBoundary

Match boundary between digit characters and nondigit characters

Description

example

pat = digitBoundary creates a pattern that matches the start or end of a run of digit characters. digitBoundary can be negated using the ~ operator. When negated, ~digitBoundary matches the boundary between any two characters except at the start or end of a run of digits.

example

pat = digitBoundary(type) specifies whether to match at the start or end of a run of digits. type can be 'start', 'end', or 'either' (default).

Examples

collapse all

Use digitBoundary to divide a string along boundaries between digits and nondigit characters.

Create a pattern that matches any digit boundaries.

txt = "123 abc .?! def 456";
pat = digitBoundary;

Use replace to insert "|" characters at the matched boundaries.

replace(txt,pat,"|")
ans = 
"|123| abc .?! def |456|"

Use the "start" and "end" options for digitBoundary to match the boundary between digits and nondigit characters.

Create a string that contains several different character types. Create a pattern that matches any characters between the "start" boundary for digits and an "end" boundary.

txt = "123 abc .?! def 456";
pat = digitBoundary("start") + wildcardPattern(1,inf) + digitBoundary("end");

Extract the pattern.

boundaries = extract(txt,pat)
boundaries = 2x1 string
    "123"
    "456"

Use the ~ operator to negate digitBoundary. This matches the boundary between two characters when both are digit characters or neither is a digit character.

Create a string that contains several different character types. Create a pattern that matches a negated digitBoundary.

txt = "123 abc .?!";
pat = ~digitBoundary;

Use replace to insert "|" characters to show where ~digitBoundary matches.

boundaries = replace(txt,pat,"|")
boundaries = 
"1|2|3 |a|b|c| |.|?|!|"

Input Arguments

collapse all

Boundary type, specified as 'start', 'end', or 'either'.

Data Types: char | string

Output Arguments

collapse all

Pattern expression, returned as a pattern object.

Introduced in R2020b