gpt4 book ai didi

ruby 正则表达式 |匹配括号

转载 作者:数据小太阳 更新时间:2023-10-29 07:31:50 25 4
gpt4 key购买 nike

我正在尝试创建一个正则表达式模式来匹配我的字符串中的特定文本集。

假设这是字符串 ^foo{bar}@Something_Else我想匹配 ^foo{} 完全跳过括号的内容。

直到现在我才知道如何使用此正则表达式获取所有内容 \^(\w)\{([^\}]+)} 但我真的不知道如何忽略大括号内的文本。

有人有想法吗?谢谢。

最佳答案

更新

这是最终的解决方案:

puts script.gsub(/(\^\w+)\{([^}]+)(})/, '[BEFORE]\2[AFTER]')

虽然我更喜欢这个有更少的组:

puts script.gsub(/\^\w+\{([^}]+)}/, '[BEFORE]\1[AFTER]')

原始答案

I need to replace the ^foo{} part with something else

这里有一种使用 gsub 的方法:

s = "^foo{bar}@Something_Else"
puts s.gsub(/(.*)\^\w+\{([^}]+)}(.*)/, '\1SOMETHING ELSE\2\3')

参见 demo

技术是相同的:捕获要保留的文本并仅匹配要删除的文本,然后使用反向引用来恢复捕获的文本。

正则表达式匹配:

  • (.*) - 从一开始就将尽可能多的文本匹配并捕获到第 2 组
  • \^\w+\{ - 火柴^ , 1个或多个单词字符, {
  • ([^}]+) - 将除 } 以外的 1 个或多个符号匹配并捕获到第 2 组中
  • } - 匹配}
  • (.*) - 最后将字符串的其余部分匹配并捕获到第 3 组。

关于 ruby 正则表达式 |匹配括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31987695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com