sm(X;Y)
Returns a boolean value indicating whether a given string matches a particular template, and is case sensitive.
Syntax
sm(X;Y)
Input
Argument | Type | Description |
---|---|---|
X |
text | The string on which to apply the function A scalar value or the name of a column |
Y |
text | A string that defines a pattern against which to compare
X Y contains those characters that must appear
in X plus special "wildcard" characters:
|
Return Value
Returns an integer value of 1 if X
fits the pattern defined by
Y
. Otherwise, returns 0.
If X
is N/A, the result is 0.
Sample Usage
value |
pattern |
sm(value;pattern) |
---|---|---|
'abcdefg' | 'bcd' | 0 |
'abcdefg' | '*bcd*' | 1 |
'abcdefg' | '*b*' | 1 |
'abcdefg' | '*b?d*' | 1 |
'abcdefg' | '*b?e*' | 0 |
'abcdefg' | '*[bB][cC][dD]*' | 1 |
'ABCDEFG' | '*[bB][cC][dD]*' | 1 |
'abcdefg' | '[^abc]bcdefg' | 0 |
'abcdefg' | '[^def]bcdefg' | 1 |
Example
In the "Monthly Statewide Seasonally Adjusted Unemployment Statistics" table
(pub.fin.fred2.bls.smsa), you can find only those rows whose state
abbreviations begin with the letter "N". To do this, create a
computed column and apply the sm(X;Y)
function to the
state
column, and specify "N?" as the pattern to
match.
<base table="pub.fin.fred2.bls.smsa"/> <willbe name="example" value="sm(state;'N?')" label="States Beginning`With N"/> <colord cols="state,example"/>
For those values in the state
column that begin with "N
",
the result is 1. Otherwise, the result is
0.
Additional Information
- Use
sm(X;Y)
for pattern matching, unless you have a pattern-matching need that requires a regex function. - This function does not work with Unicode (UTF-8) strings.
- For a Unicode-compliant alternative, consider
regex_match(X;L;Y;I)
.