Work with regular expression types
A regular expression type represents a regular expression pattern.
Type name: regexp
- Regular expression syntax
- Use regular expression flags
- Use regular expressions in predicate expressions
- Convert a string to a regular expression
- Examples
Regular expression syntax
Flux uses the Go regexp implementation and syntax.
This syntax is similar to regular expressions in Perl, Python, and other languages.
Regular expression literals are enclosed in forward slash characters (/
).
/^[a-z0-9]+$/
Use regular expression flags
Flux supports the following regular expression flags:
Flag | Description |
---|---|
i | case-insensitive |
m | multi-line mode: ^ and $ match begin/end line in addition to begin/end text |
s | let . match \n |
U | ungreedy: swap meaning of x* and x*? , x+ and x+? , etc |
Include regular expression flags at the beginning of your regular expression pattern
enclosed in parentheses (()
) and preceded by a question mark (?
).
/(?iU)foo*/
Use regular expressions in predicate expressions
To use regular expressions in predicate expressions,
use the =~
and !~
comparison operators.
The left operand must be a string.
The right operand must be a regular expression.
"abc" =~ /\w/
// Returns true
"z09se89" =~ /^[a-z0-9]{7}$/
// Returns true
"foo" !~ /^f/
// Returns false
"FOO" =~ /(?i)foo/
// Returns true
Convert a string to a regular expression
- Import the
regexp
package. - Use
regexp.compile()
to compile a string into a regular expression type.
import "regexp"
regexp.compile(v: "^- [a-z0-9]{7}")
// Returns ^- [a-z0-9]{7} (regexp type)
Examples
- Replace all substrings that match a regular expression
- Return the first regular expression match in a string
- Escape regular expression metacharacters in a string
Replace all substrings that match a regular expression
-
Import the
regexp
package. -
Use
regexp.replaceAllString()
and provide the following parameters:- r: regular expression
- v: string to search
- t: replacement for matches to r.
import "regexp"
regexp.replaceAllString(r: /a(x*)b/, v: "-ab-axxb-", t: "T")
// Returns "-T-T-"
Return the first regular expression match in a string
-
Import the
regexp
package. -
Use
regexp.findString()
to return the first regular expression match in a string. Provide the following parameters:- r: regular expression
- v: string to search
import "regexp"
regexp.findString(r: /foo.?/, v: "seafood fool")
// Returns "food"
Escape regular expression metacharacters in a string
If a string contains regular expression metacharacters that should be evaluated as literal characters, escape the metacharacters before converting the string to a regular expression:
- Import the
regexp
package. - Use
regexp.quoteMeta()
and provide the string to escape regular expression metacharacters in:
import "regexp"
regexp.quoteMeta(v: ".+*?()|[]{}^$")
// Returns "\.\+\*\?\(\)\|\[\]\{\}\^\$"
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for Flux and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.