gpt4 book ai didi

ruby - 删除空格和等号之间的任何内容

转载 作者:太空宇宙 更新时间:2023-11-03 18:10:09 25 4
gpt4 key购买 nike

我有这个字符串:

2014-01-09T06:16:53.748849+00:00 heroku[路由器]: at=info method=POST fwd="94.66.255.106"dyno=web.12 connect=12ms service=21ms status= 200 字节=78

我希望它是:

2014-01-09T06:16:53.748849+00:00 heroku[router]: info POST "94.66.255.106"web.12 12ms 21ms 200 78

我试过这样的:

/.*=/

但它匹配第一个和最后一个等号之间的任何内容。

我确信替换第一个是可以的,然后使用类似 gsub 的东西来替换它们。

最佳答案

您的模式 /.*=/ 匹配除换行符之外的任何字符,直到一行中遇到的最后一个 =。发生这种情况是因为 * 是一个贪婪的量词,并且匹配尽可能多的字符。

您似乎需要匹配 = 之前没有空格的子字符串。你可以使用

s.gsub(/[^\s=]+=/, '')

参见 IDEONEregex demo

s = '2014-01-09T06:16:53.748849+00:00 heroku[router]: at=info method=POST fwd="94.66.255.106" dyno=web.12 connect=12ms service=21ms status=200 bytes=78'
puts s.gsub(/[^\s=]+=/, '')
# => 2014-01-09T06:16:53.748849+00:00 heroku[router]: info POST "94.66.255.106" web.12 12ms 21ms 200 78

模式匹配:

  • [^\s=]+ - 1 个或多个(由于 + 量词)空格和 =([^...]是否定字符类,匹配所有不在其中的字符)
  • = - 等号

关于ruby - 删除空格和等号之间的任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35919790/

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