2012-08-17 42 views
-2

如何使用Ruby将字符串russ(ai)(edocn)cup转换为russiancodecup使用Ruby转换字符串

+1

我不知道你在说什么(也许是因为你没有说你的问题是什么) – 2012-08-17 10:34:21

+1

看起来OP是试图采取括号内的任何子字符串,颠倒子串,然后删除括号。你能否确认/拒绝user1506690? – xelco52 2012-08-17 20:56:32

回答

6

通过在块中使用gsub,可以用该块的结果替换正则表达式的任何匹配项。

s = "russ(ai)(edocn)cup" 
s.gsub(/\(([^)]*)\)/) {$1.reverse} # => "russiancodecup" 

这里的正则表达式将匹配括号内的任何非)字符。然后它会发送reverse$1这将是括号内的内容。

$0将是完全匹配和$n,即第n个“子匹配”。 (任何人的正确的单词?)

+2

我相信你正在寻找的术语是'捕获组' – 2012-08-17 10:53:51

+0

是的。干杯弗雷德里克。 – thoferon 2012-08-17 11:02:52

+1

难道不是's ='russ(ai)(edocn)cup''吗? – Mischa 2012-08-17 23:41:57