前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >正则表达式提取子表达式中的内容

正则表达式提取子表达式中的内容

原创
作者头像
路之遥
修改2022-10-12 14:12:05
2.4K0
修改2022-10-12 14:12:05
举报
文章被收录于专栏:luzhiyaoluzhiyao

正则表达式规则内容较多,此处仅介绍提取()``{}子表达式的内容,并介绍涉及的规则。

提取子表达式的内容

提取子表达式()中的内容

待匹配文本:"foo(bar)foo(baz)golang"

提取规则:\(([^\)]+)\)

提取结果:(bar) (baz)

测试网址:https://tool.oschina.net/regex/

提取子表达式{}中的内容

待匹配文本:"Say {goodbye to complex processes}. Participate in promising {lending and decentralized } projects"

提取规则:\{([^\}]+)\}

提取结果:{goodbye to complex processes} {lending and decentralized }

测试网址:https://tool.oschina.net/regex/

规则介绍

  • \(: 匹配表达式中的(,其中\为转义标示,因为(为特殊字符,匹配(需要进行转义
    • \{: 同理该表达式为匹配表达式中的{
  • ([^\)]+): 一个捕获组
    • ()表示子表达的开始和结束,它内部包含一个子表达式的匹配规则
    • [^\)+]: 一次或多次与非\)右括号匹配,在[]中使用^表示非、排除的意思
  • +: 匹配前面的表达式一次或多次
  • \}: 匹配表达式中的}
  • ^: 除了在[]中使用时表示非、排除的意思外,其它情况表示匹配字符串的起始位置
  • $: 匹配字符串的结束位置
  • ^a{1,3}$: 近当字符串为1、2、3个a时才匹配.

golang 代码示例

代码语言:go
复制
package main

import (
    "fmt"
    "regexp"
)

func main(t *testing.T) {
	
	str := "Say {goodbye to complex processes}. Participate in promising {lending and exchange} projects"
	rex := regexp.MustCompile(`(\{([^}]+)\})([^{^}])`)
	fmt.Printf("%+v\n", rex.FindAllString(str, -1))
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 提取子表达式的内容
    • 提取子表达式()中的内容
      • 提取子表达式{}中的内容
      • 规则介绍
      • golang 代码示例
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档