A regular expression is a sequence of characters that is used for searching and replacing text and pattern matching.
Note: This expression is not the property of just one particular programming language; instead, it is supported by multiple languages.
There are certain expressions that need to be used to search and match patterns; some of these are given in the table below.
Expression | Description |
---|---|
[] | Used to find any of the characters or numbers specified between the brackets. |
\d | Used to find any digit. |
\D | Used to find anything that is not a digit. |
\d+ | Used to find any number of digits. |
x* | Used to find any number (can be zero) of occurrences of x. |
The GoLang standard package for writing regular expressions is called regexp
. The package uses RE2 syntax standards that are also used by other languages like Python, C, and Perl.
In order to use a regular expression in Go, it must first be parsed and returned as a regexp
object.
package mainimport ("fmt""regexp")func main() {re := regexp.MustCompile("ck$")fmt.Println(re.FindString("hack"))}
FindString
methodThe FindString
method returns the leftmost substring, thus matching the given pattern. If the pattern cannot be found, the method returns an empty string. The code below shows how to use this method.
package mainimport ("fmt""regexp")func main() {re := regexp.MustCompile("et$")fmt.Println(re.FindString("cricket"))fmt.Println(re.FindString("hacked"))fmt.Println(re.FindString("racket"))}
FindStringIndex
methodThe FindStringIndex
method returns the starting and ending index of the leftmost match of the regular expression. If nothing is found, a null value is returned.
package mainimport ("fmt""regexp")func main() {re := regexp.MustCompile("tel")fmt.Println(re.FindStringIndex("telephone"))fmt.Println(re.FindStringIndex("carpet"))fmt.Println(re.FindStringIndex("cartel"))}
FindStringSubmatch
methodThe FindStringSubmatch
method returns the leftmost substring that matches the regex pattern. If no pattern is matched, a null value is returned. For example:
package mainimport ("fmt""regexp")func main() {re := regexp.MustCompile("p([a-z]+)ch")fmt.Println(re.FindStringSubmatch("peach punch"))fmt.Println(re.FindStringSubmatch("cricket"))}