我如何使用 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
我正在尝试使用第 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