You can do it like this. I wrote the code to filter out lines from an array 
that does not contain words specified in array. 

package main
>
> import (
>    "os"
>    "log"
>    "bufio"
>    "io"
>    "regexp"
> )
>
> var abcd = [5]string{
>    "one two",
>    "three four fix",
>    "six",
>    "seven eight nine ten",
>    "eleven twelve thirteen fourteen fifteen",
> }
>
> func main() {
>
>    inputFile, err := os.Open("file.txt")
>    if err != nil {
>       log.Fatalln(err)
>    }
>
>    reader := bufio.NewReader(inputFile)
>
>    for {
>       filedata, _, err := reader.ReadLine()
>       if err != nil {
>          if err != io.EOF {
>             log.Fatal(err)
>          }
>          return
>       }
>
>       if stringsInSlice(string(filedata)) {
>
>          // Write This Line to a file.
>
>       }
>    }
> }
>
> func stringsInSlice(str string) bool {
>    for _, v := range abcd {
> // \b is used to create boundary, So, It won't match a word in a bigger word. 
>       regex, err := regexp.Compile(`\b` + v + `\b`)
>       if err != nil {
>          log.Panic("Error In Compiling Regex")
>       }
>       if len(regex.FindAllString(str, 1)) != 0 {
>          return true
>       }
>    }
>    return false
> }
>
>
See this code in Action. 

https://play.golang.org/p/v-rzh-Wpui 

If there is something in my code that you did not understood, please let me 
know. 

Regards

Ishan Jain

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to