Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用gsub将regexruby替换为第10组?_Ruby_Regex_Regex Group - Fatal编程技术网

如何使用gsub将regexruby替换为第10组?

如何使用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” 我怎样才能解决这个问题 请帮助我不确定如何引用两位数的

我试图用组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”

我怎样才能解决这个问题


请帮助我

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

"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中唯一的方法。