返回顶部
首页 > 资讯 > 后端开发 > GO >跳过正则表达式字符,直到使用 golang 进行搜索
  • 435
分享到

跳过正则表达式字符,直到使用 golang 进行搜索

2024-04-04 23:04:36 435人浏览 安东尼
摘要

小伙伴们对golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《跳过正则表达式字符,直到使用 Golang 进行搜索》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多

小伙伴们对golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《跳过正则表达式字符,直到使用 Golang 进行搜索》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

问题内容

这将跳过前 2 个字符并开始从左到右匹配

re := regexp.mustcompile("(^.{2})(\\/path\\/subpath((\\/.*)|()))")
fmt.println(re.matchstring("c:/path/subpath/path/subpath/")) // true
fmt.println(re.matchstring("c:/patch/subpath/path/subpath/")) // false

注意第二个没有击中。即使字符串中存在 /path/subpath 。这太完美了。

现在,如果不知道要跳过多少个字符并想从第一个“/”开始搜索,那么我尝试了这个

re2 := regexp.MustCompile("([^\\/])(\\/path\\/subpath((\\/.*)|()))")
fmt.Println(re2.MatchString("cDDDdd:/path/subpath/path/subpath"))  // true

这是完美的。但如果我改变第一条路径 fmt.println(re2.matchstring("cddddd:/patch/subpath/path/subpath")) // 这也是如此

我不希望最后一个与第二个 /path/subpath 匹配。我希望能够在第一组中搜索,从那里开始第二组并进行从左到右的匹配。

任何帮助将不胜感激。


解决方案


更准确地表达你想要什么,用绝对的术语陈述你想要什么,而不是像“第二个第一不应该匹配第三个”那样。相反,说;

我想捕获第二组中以 /path/subpath 开头的路径。如果路径在开头之后的某个位置包含 /path/subpath ,那么我不希望它匹配。

此外,斜杠在正则表达式中并不特殊,因此您不需要无缘无故地对它们进行双重转义。

第三个表达式的作用是:

  1. 从起始锚点捕获除斜杠之外的所有内容
  2. 通过以下方式将组 1 与组 2 分隔:
  3. 要求 /path/subpath 位于路径顶部
  4. 捕获剩下的一切

这可能就是您想要的:

package main

import (
    "fmt"
    "regexp"
)

func main() {
    paths := []string{
        "c:/path/subpath/path/subpath/",
        "c:/patch/subpath/path/subpath/",
        "cddddd:/path/subpath/path/subpath",
    }

    re1 := regexp.mustcompile("(^.{2})(/path/subpath(/.*))")
    re2 := regexp.mustcompile("([^/])(/path/subpath((/.*)|()))")
    re3 := regexp.mustcompile(`^([^/]+):/path/subpath(/.*)`)

    for i, re := range []*regexp.regexp{re1, re2, re3} {
        i++
        for _, s := range paths {
            fmt.println(i, re.matchstring(s), s)
            if re.matchstring(s) {
                matches := re.findstringsubmatch(s)
                for m, g := range matches {
                    m++
                    if m > 1 {
                        fmt.printf("\n\t%d %v", m, g)
                    }
                }
            }
            println()
        }
        println()
    }
}

输出

$ go run so-regex-path.go 
(...)

3 true c:/path/subpath/path/subpath/

    2 c
    3 /path/subpath/
3 false c:/patch/subpath/path/subpath/

3 true cddddd:/path/subpath/path/subpath

    2 cddddd
    3 /path/subpath

到这里,我们也就讲完了《跳过正则表达式字符,直到使用 golang 进行搜索》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注编程网公众号,带你了解更多关于的知识点!

您可能感兴趣的文档:

--结束END--

本文标题: 跳过正则表达式字符,直到使用 golang 进行搜索

本文链接: https://www.lsjlt.com/news/596269.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 跳过正则表达式字符,直到使用 golang 进行搜索
    小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《跳过正则表达式字符,直到使用 golang 进行搜索》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多...
    99+
    2024-04-04
  • C#正则表达式字符串搜索内容有哪些
    本篇内容介绍了“C#正则表达式字符串搜索内容有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C#正则表达式及字符串搜索1、正则表达式简介...
    99+
    2023-06-17
  • 使用正则表达式匹配直到两个连续特殊字符 (]])
    亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《使用正则表达式匹配直到两个连续特殊字符 (]])》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的...
    99+
    2024-04-05
  • 如何使用Golang中的正则表达式库来进行字符串替换
    在Go语言中,正则表达式(Regular expression)可以帮助我们快速地实现字符串匹配、提取和替换等操作,从而提高代码的效率和可读性。在本文中,我们将探讨如何使用Golang中的正则表达式库来进行字符串替换。一、正则表达式基础在开...
    99+
    2023-05-14
  • 怎么使用Golang中的正则表达式库来进行字符串替换
    本篇内容主要讲解“怎么使用Golang中的正则表达式库来进行字符串替换”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Golang中的正则表达式库来进行字符串替换”吧!一、正则表达式基础在...
    99+
    2023-07-05
  • 如何使用Python中的正则表达式进行字符串匹配
    如何使用Python中的正则表达式进行字符串匹配正则表达式是一种强大的字符串模式匹配工具,它能够在文本中查找特定的模式,使程序能够更快速、更灵活地处理字符串。在Python中,我们可以使用re模块来操作正则表达式。本文将介绍如何使用Pyth...
    99+
    2023-10-22
    Python 正则表达式 字符串匹配
  • java中如何使用正则表达式过滤特殊字符
    实例代码如下:推荐java视频教程:java学习视频public class FilterSpecialStr { public static void main(String[] args) { String regE...
    99+
    2021-04-20
    java 正则表达式 过滤 特殊字符
  • 如何在Java中使用正则表达式对字符串进行判断
    如何在Java中使用正则表达式对字符串进行判断?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java 正则表达式判断字符串是否以字符开始:public stat...
    99+
    2023-05-31
    java 正则表达式 字符串
  • SQL如何使用正则表达式对数据进行过滤
    目录1、基本字符匹配2、进行OR匹配3、匹配几个字符之一4、匹配范围5、匹配特殊字符6、匹配字符类7、匹配多个实例8、定位符9、like语句与正则总结1、基本字符匹配 数据库使用正则进行过滤,写法与like语句非常相似,...
    99+
    2024-04-02
  • Python正则表达式如何进行字符串替换实例
    Python正则表达式在使用中会经常应用到字符串替换的代码。有很多人都不知道如何解决这个问题,下面的代码就告诉你其实这个问题无比的简单,希望你有所收获。 1.替换所有匹配的子串用newstring替换sub...
    99+
    2022-06-04
    字符串 实例 正则表达式
  • 如何进行正则表达式匹配字符串的实现
    如何进行正则表达式匹配字符串的实现,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。使用正则表达式最常用的是考虑实现正则表达式匹配的判断,在实际工作中经常会遇到什么...
    99+
    2023-06-17
  • 用 Golang 正则表达式提升字符串处理能力
    go 正则表达式可提升字符串处理能力,其语法遵循 posix 标准,提供了字符类、元字符、量词和分组等功能。创建正则表达式可使用 regexp.mustcompile 函数,匹配字符串可...
    99+
    2024-04-08
    golang
  • PHP中如何使用正则表达式字符集
    今天就跟大家聊聊有关PHP中如何使用正则表达式字符集,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。PHP正则表达式字符集的相关概念:在INTERNET的程序中,正规表达式通常用来验证...
    99+
    2023-06-17
  • 如何用正则表达式从 Golang 字符串中提取数字?
    使用正则表达式从 golang 字符串中提取数字:正则表达式语法:[0-9]+ 匹配一个或多个十进制数字。使用 regexp 包:导入 regexp 包并编译正则表达式。使用 finda...
    99+
    2024-05-13
    golang 正则表达式 iphone
  • 如何使用PHP进行正则表达式匹配?
    正则表达式是一种强大的文本处理工具,它允许您在文本中搜索具有特定模式的字符串,并进行替换或提取。在 PHP 中,正则表达式使用 preg 系列函数,包括 preg_match、preg_match_all、preg_replace 等等。本...
    99+
    2023-05-23
    PHP正则表达式 匹配字符串 preg函数
  • C#正则表达式的定位字符怎么使用
    这篇文章主要介绍“C#正则表达式的定位字符怎么使用”,在日常操作中,相信很多人在C#正则表达式的定位字符怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#正则表达式的定位字符怎么使用”的疑惑有所帮助!...
    99+
    2023-06-18
  • 怎么使用java正则表达式获取字符串
    要使用Java正则表达式获取字符串,可以按照以下步骤进行操作:1. 导入`java.util.regex`包。在Java中,正则表达...
    99+
    2023-09-05
    java
  • 怎么使用python正则表达式查找字符串
    使用Python的re模块来使用正则表达式查找字符串。首先,导入re模块:```pythonimport re```然后,定义一个正...
    99+
    2023-08-18
    python
  • python中使用正则表达式的后向搜索肯定模式(推荐)
    正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里...
    99+
    2022-06-04
    后向 模式 正则表达式
  • JS中jQuery如何使用正则表达式去空字符
    小编给大家分享一下JS中jQuery如何使用正则表达式去空字符,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.正则去空字符串;...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作