我如何使用 gsub 将正则表达式 ruby 替换为第 10 组?

how I could regex ruby replace by group 10 using gsub?

我正在尝试使用第 10 组 gsub 替换字符串,而不是 ruby 用第 1 组和第 0 组替换 我在 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”

我该如何解决这个问题

请帮帮我

不确定如何引用两位数的捕获组,但您始终可以只引用类似以下内容的名称:

"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"

没有一个已知的正则表达式引擎支持 [0..9] 区域以外的未命名组。请改用 named_captures,或使用未捕获的组 (?:...),或使用更明智的正则表达式:

"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