3
mystring = "svn-myapplication" or mystring = "git-myapplication"

私の望む出力:

mystring = "myapplications(svn)"
mystring = "myapplication(git)"

質問:文字列の最初の 3 文字を括弧で囲んで最後に移動し、「-」を削除する必要があります。

私はこのようなことをしようとしました:

mystring.gsub('svn-','')+"(svn)"しかし、svn は git かもしれないので、最初の 3 文字を使用して、「-」を削除し、括弧で囲んで終了するように移動したい

4

6 に答える 6

9

グループを含む正規表現はうまく機能します。

mystring.gsub(/^([a-z]+)-(\w+)/, '\2(\1)')

于 2013-04-05T11:09:36.750 に答える
3

[]これには、Ruby の String クラスのメソッドを使用できます。

mystring = "svn-myapplication"
mystring = "#{mystring[4..-1]}(#{mystring[0,3]})"
于 2013-04-05T11:05:02.797 に答える
2

irbでこのようなことを試すことができます

1.9.3-p362 :001 > mystring = "svn-myapplication"

1.9.3-p362 :002 > mystring.gsub(mystring[0,3]+'-','')+(mystring[0,3])
于 2013-04-05T11:05:45.447 に答える
1

私はこれを提出するつもりでしたが、少なくとも私はそれをより良くする方法を見ることができます!

def test(s = '')
  match = /\w+-/.match(s).to_s
  match = match[0..-2]
  s.gsub!(/\w+-/, '')
  s << "(#{match})"
end # of test
于 2013-04-05T11:17:43.723 に答える