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
+7.2k Nginx : How to block user agent ?
+12.9k Golang : Convert IPv4 address to packed 32-bit binary format
+23k Golang : Test file read write permission example
+20k Golang : Count JSON objects and convert to slice/array
+27k Golang : Force your program to run with root permissions
+5.4k Golang : Return multiple values from function
+8.9k Golang : HTTP Routing with Goji example
+16.4k Golang : Find out mime type from bytes in buffer
+18.9k Golang : Delete duplicate items from a slice/array
+12.8k Golang : Remove or trim extra comma from CSV
+19.4k Golang : Get host name or domain name from IP address
+51.5k Golang : Check if item is in slice/array