gpt4 book ai didi

Ruby 正则表达式\1 对 gsub 意味着什么

转载 作者:数据小太阳 更新时间:2023-10-29 06:37:20 24 4
gpt4 key购买 nike

\1 是做什么的?

例如

"foo bar bag".gsub(/(bar)/,'car\1')

我相信这与您使用括号的方式有关,但我不太确定。有人可以向我解释吗?你能做像\2 这样的事情吗?如果是这样,那会做什么?

最佳答案

您在搜索部分用括号括起来的每个项目将对应于替换部分中的一个数字 \1\2 等。

在您的示例中,只有一个项目被括号包围,即 "(bar)" 项目,因此您放置 \1 的任何地方都是括号,将被换入。你可以多次输入 \1,如果你想重复找到的项目,这很方便,所以你可以合法地写 car\1\1\1"bar" 将交换三次。

\2 没有用处,因为括号中只有一项。但是,如果您有 (bar)(jar),则 \1 将代表 "bar"\2 将代表 “jar”

你甚至可以这样做:

\1\2\1\2\2\1

这会变成:

barjarbarjarjarbar

这是一个可以派上用场的真实示例。假设您有一个这样的名单:

Jones, Tom  
Smith, Alan
Smith, Dave
Wilson, Bud

并且您想将其更改为:

Tom Jones  
Alan Smith
Dave Smith
Bud Wilson

您可以搜索:

(.+), (.+)

并替换为:

\2 \1

你也可以替换为:

\1: \2 \1  

这会变成:

Jones: Tom Jones  
Smith: Alan Smith
Smith: Dave Smith
Wilson: Bud Wilson

关于Ruby 正则表达式\1 对 gsub 意味着什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15825872/

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