如何使用gsub将regexruby替换为第10组?
我试图用组10替换一个字符串,但不是用组1和0替换这个ruby 我用这个来替换gsub如何使用gsub将regexruby替换为第10组?,ruby,regex,regex-group,Ruby,Regex,Regex Group,我试图用组10替换一个字符串,但不是用组1和0替换这个ruby 我用这个来替换gsub gsub \\10xp "smnm nmnmn nmnmn dsdsf sffddf sffdfd dfsff fdsdsfd fsdds ssfsff".gsub(/(\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+)/,"\\10xp") 替换并获取组1和字符串“0xp” 我怎样才能解决这个问题 请帮助我不确定如何引用两位数的
gsub \\10xp
"smnm nmnmn nmnmn dsdsf sffddf sffdfd dfsff fdsdsfd fsdds ssfsff".gsub(/(\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+)/,"\\10xp")
替换并获取组1和字符串“0xp”
我怎样才能解决这个问题
请帮助我不确定如何引用两位数的捕获组,但您始终可以引用具有以下内容的名称:
"smnm nmnmn nmnmn dsdsf sffddf sffdfd dfsff fdsdsfd fsdds ssfsff".
gsub(/(\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (?<ten>\S+)/,
'\k<ten>xp')
# "ssfsffxp"
“smnm NMN nmnmn DSF sffddf SFFD dfsff fdsdsfd fsdds ssfsff”。
gsub(/(\S+)(\S+)(\S+)(\S+)(\S+)(\S+)(\S+)(\S+)(\S+)(\S+)(\S+)/,
“\kxp”)
#“ssfsffxp”
除了[0..9]
区域之外,没有一个已知的正则表达式引擎支持未命名的组。改为使用,或使用未捕获的组(?:…)
,或使用更明智的正则表达式:
"smnm nmnmn nmnmn dsdsf sffddf sffdfd dfsff fdsdsfd fsdds ssfsff".
gsub(/((?:\S+\s+){9})(\S+)/, "\\1 \\2xp")
# ⇑ second group
# ⇑⇑⇑ nine times
# ⇑⇑⇑ don’t capture this!
# ⇑ first group
这是Ruby中唯一的方法。