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
+10.3k Python : Convert IPv6 address to decimal and back to IPv6
+6.6k Golang : Count leading or ending zeros(any item of interest) example
+5.9k Prevent Write failed: Broken pipe problem during ssh session with screen command
+11k Golang : Human readable time elapsed format such as 5 days ago
+11.3k Golang : Get uploaded file name or access uploaded files
+10k Golang : Skip blank/empty lines in CSV file and trim whitespaces example
+6.8k Golang : Detect number of active displays and the display's resolution
+12.2k Golang : Get current time from the Internet time server(ntp) example
+38.5k Golang : Use wildcard patterns with filepath.Glob() example
+6.2k Golang : Add build version and other information in executables
+14.7k Golang : Read data from config file and assign to variables
+15.4k Golang : Get command line arguments