当前位置: 首页 > 编程笔记 >

go语言文件正则表达式搜索功能示例

晋功
2023-03-14
本文向大家介绍go语言文件正则表达式搜索功能示例,包括了go语言文件正则表达式搜索功能示例的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了go语言文件正则表达式搜索功能。分享给大家供大家参考,具体如下:

package main

import (

    "fmt"

    "os"

    "path/filepath"

    "regexp"

)

func main() {

    // 命令行参数

    args := os.Args

    // 检查参数

    if len(args) == 1 {

        fmt.Println("ff is a file find tool. use like bottom")

        fmt.Println("ff [dir] [regexp]")

        return

    }

    if len(args) < 3 {

        fmt.Println("args < 3")

        return

    }

    fileName := args[1]

    pattern := args[2]

    file, err := os.Open(fileName)

    if err != nil {

        fmt.Println(err)

        return

    }

    fi, err := file.Stat()

    if err != nil {

        fmt.Println(err)

        return

    }

    if !fi.IsDir() {

        fmt.Println(fileName, " is not a dir")

    }

    reg, err := regexp.Compile(pattern)

    if err != nil {

        fmt.Println(err)

        return

    }

    // 遍历目录

    filepath.Walk(fileName,

        func(path string, f os.FileInfo, err error) error {

            if err != nil {

                fmt.Println(err)

                return err

            }

            if f.IsDir() {

                return nil

            }

            // 匹配目录

            matched := reg.MatchString(f.Name())

            if matched {

                fmt.Println(path)

            }

            return nil

        })

}

PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript

正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg

希望本文所述对大家Go语言程序设计有所帮助。

 类似资料:
  • 本文向大家介绍Go语言正则表达式示例,包括了Go语言正则表达式示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Go语言正则表达式。分享给大家供大家参考,具体如下: 返回结果: PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用: JavaScript正则表达式在线测试工具: http://tools.jb51.net/regex/javascript 正则表达式在线生成工

  • 主要内容:正则表达式语法规则,Regexp 包的使用正则表达式是一种进行模式匹配和文本操纵的复杂而又强大的工具。虽然正则表达式比纯粹的文本匹配效率低,但是它却更灵活,按照它的语法规则,根据需求构造出的正则表达式能够从原始文本中筛选出几乎任何你想要得到的字符组合。 Go语言通过 regexp 包为正则表达式提供了官方支持,其采用 RE2 语法,除了 、 外,Go语言和 Perl、 Python 等语言的正则基本一致。 正则表达式语法规则 正则表达式是

  • 问题内容: 我需要找到与特定正则表达式匹配的所有软件包: 基本上,包的名字应该与启动,并有后话。例如,以下软件包应匹配: 我可以做,但是有很多我不感兴趣的软件包。 是否提供通过正则表达式查找软件包的方法?或者,我应该只是通过管道传递结果来过滤掉无关的包? 此外,可能是一个的“交集” ,并有助于太。 问题答案: alecxe,我相信这是您要寻找的一线客。 如下面评论中铬酸盐所建议的那样,您可以根据需

  • 问题内容: 我想在包含单行的超大文件(fe大于1 GB)中搜索模式。无法将其加载到内存中。目前,我使用读入缓冲区(1024个字符)。主要步骤: 将数据读入两个缓冲区 该缓冲区中的搜索模式 如果找到模式,则增加变量 将第二个缓冲区复制到第一个 将数据加载到第二个缓冲区 在两个缓冲区中搜索模式。 如果找到模式,则增加变量 重复上述步骤(从4开始),直到EOF 该算法(两个缓冲区)让我避免了将搜索到的文

  • 我的正则律很糟糕。我想建立一个智能搜索,在那里我可以给搜索引擎提示在哪个属性上搜索什么。 类似这样: 搜索输入:位置:伦敦 - 搜索输入:位置:纽约伦敦 - 搜索输入:位置:伦敦标签:栏 - - 搜索输入:地点:伦敦,纽约标签:酒吧,俱乐部 - - 我想知道正则表达式应该如何解析这样的用户输入?

  • 本文向大家介绍Go语言正则表达式的使用详解,包括了Go语言正则表达式的使用详解的使用技巧和注意事项,需要的朋友参考一下 正则表达式是一种进行模式匹配和文本操纵的功能强大的工具。正则表达式灵活、易用,按照它的语法规则,随需构造出的匹配模式就能够从原始文本中筛选出几乎任何你想要得到的字符组合。 准则 默认是最短匹配,只要字符串满足条件就返回。 如果没有匹配到,都是返回为nil。 如果需要做最长匹配,调