Golang : How to check if input string is a word?
Problem :
I'm writing a parser and I need to determine if the user input is a word or something else? How to do that?
Solution :
Use the IsWordChar()
function from syntax/regexp
package. For example :
NOTE : This solution is for ASCII-only: the word characters are [A-Za-z0-9_].
package main
import (
"fmt"
"regexp/syntax"
)
func main() {
word1 := []rune("alpha")
word2 := rune('吃') // no need for array if for single rune
word3 := []rune("1234")
word4 := []rune(" $#$^@#$ ")
ok := syntax.IsWordChar(word1[0])
fmt.Printf("%v is a word ? : %v \n", string(word1), ok)
ok = syntax.IsWordChar(word2)
fmt.Printf("%v is a word ? : %v \n", string(word2), ok)
ok = syntax.IsWordChar(word3[0])
fmt.Printf("%v is a word ? : %v \n", string(word3), ok)
ok = syntax.IsWordChar(word4[0])
fmt.Printf("%v is a word ? : %v \n", string(word4), ok)
}
Output :
alpha is a word ? : true
吃 is a word ? : false
1234 is a word ? : true
$#$^@#$ is a word ? : false
Reference :
https://www.socketloop.com/references/golang-regexp-syntax-iswordchar-function-example
See also : Golang : How to tokenize source code with text/scanner package?
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+5.6k Golang *File points to a file or directory ?
+17.9k Golang : [json: cannot unmarshal object into Go value of type]
+12.8k Golang : Drop cookie to visitor's browser and http.SetCookie() example
+9.9k Golang : List available AWS regions
+9.5k Golang : How to get ECDSA curve and parameters data?
+10.4k Golang : Use regular expression to get all upper case or lower case characters example
+22.1k Golang : Upload big file (larger than 100MB) to AWS S3 with multipart upload
+19.8k Golang : Set or Add HTTP Request Headers
+9.2k Golang : How to use Gorilla webtoolkit context package properly
+36.4k Golang : Integer is between a range
+22k SSL : How to check if current certificate is sha1 or sha2
+10.1k Golang : Function wrapper that takes arguments and return result example