Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.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
Ruby on rails 如何删除字符串末尾的所有“/”字符?_Ruby On Rails_Ruby_Regex_String - Fatal编程技术网

Ruby on rails 如何删除字符串末尾的所有“/”字符?

Ruby on rails 如何删除字符串末尾的所有“/”字符?,ruby-on-rails,ruby,regex,string,Ruby On Rails,Ruby,Regex,String,我正在使用RubyonRails3.2.9和Ruby1.9.3。给定一个字符串,我想删除该字符串末尾的所有/字符。例如: From "abc/" to "abc" From "abc//" to "abc" From "abc///" to "abc" ... From "a/b/c///" to "a/b/c" 我怎样才能做到这一点(可能使用正则表达式) 我试过: string = string[0,string.length-1] if string.end_with?('/')

我正在使用RubyonRails3.2.9和Ruby1.9.3。给定一个字符串,我想删除该字符串末尾的所有
/
字符。例如:

From "abc/"   to "abc"
From "abc//"  to "abc"
From "abc///" to "abc"
...
From "a/b/c///" to "a/b/c"
我怎样才能做到这一点(可能使用正则表达式)


我试过:

string = string[0,string.length-1] if string.end_with?('/')
但它只适用于一个角色

"abc//".sub %r{/+$}, ''
这将只删除字符串末尾的
/
。 我使用
%r{}
生成一个regexp,因为在这种情况下我不必转义
/

这将只删除字符串末尾的
/

我使用
%r{}
生成regexp,因为在这种情况下,我不必转义
/

使用regexp检索字符串的预期部分:

/(.*?)\/*$/
再见


使用regexp检索字符串的预期部分:

/(.*?)\/*$/
再见


这将适用于您的示例:

my_no_slash_terminated_string = my_beginning_string.sub(/\/+$/,'')

考虑是否也要说明字符串结尾处或附近的空白。

这将适用于您的示例:

my_no_slash_terminated_string = my_beginning_string.sub(/\/+$/,'')

请考虑是否也要考虑字符串结尾处或附近的空白。

有些基准测试是正确的

因为Perry Horwich的答案基本上与Huluk的答案相同,所以我认为他们会得到相同的结果。嘿,我错了。在查看它并意识到它是在执行字符串搜索而不是正则表达式之后,我修复了它并添加了修复测试

在那之后,我做了一些调整,看看我能想出什么。我的解决方案似乎不像其他解决方案那样简单,但第一个解决方案对短字符串的处理速度相同,对长字符串的处理速度可能稍快一点。在处理短字符串或长字符串时,后两种方法都很有效,但都非常快。我又回到了老派的技术上,用汇编程序“回到过去”中的方法来做


结果:

Ruby 1.9.3 1000000 iterations Ruby 1.9.3 1000000次迭代 示例字符串:abc// huluk:abc 佩里·霍维奇:美国广播公司// 修正了perry horwich的错误:abc 标题1:abc 标题2:abc 天人一号:abc 天人二号:abc _tinu_man3:abc 用户系统总真实值 huluk 1.840000 0.000000 1.840000(1.849929) 固定perry_horwich 1.840000 0.010000 1.850000(1.847069) A标题1 1.900000 0.010000 1.910000(1.900817) A标题2 4.860000 0.010000 4.870000(4.883103) "丁满1 1.830000 0.000000 1.830000(1.826547) 锡人2 1.150000 0.000000 1.150000(1.151420) 天人合一1.170000 0.010000 1.180000(1.168161) huluk 1.820000 0.000000 1.820000(1.825440) 固定佩里霍维奇1.830000 0.000000 1.830000(1.827306) A标题1 1.850000 0.000000 1.850000(1.853751) A标题2 4.830000 0.000000 4.830000(4.825394) 锡曼1.810000 0.000000 1.810000(1.811503) 锡人1.150000.0000001.150000(1.151865) _tin_man3 1.170000 0.000000 1.170000(1.17225) 样品管柱:ABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCCABCABCABCCABCABCABCABCABCCABCCABCCABCCABCCABCCABCCABCABCABCCABCCABCCABCABCABCCABCCABCCABCABCABCCABCCABCABCABCCABCCABCCABCCABCCABCCABCCABCCABCCA// 哈鲁克:卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡 佩里·霍里奇:阿布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布// 修正了horwich:ABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCAB A标题1:ABCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCAB A标题2:ABCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCABCCAB 卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布 卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布 卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布卡布 用户系统总真实值 huluk 2.120000.000000 2.120000(2.122156) 固定perry_horwich 2.130000 0.010000 2.140000(2.136665) A标题1 9.6300000 0.030000 9.660000(9.656817) A标题2 12.420000 0.030000 12.450000(12.459432) 天人合一2.080000 0.010000 2.090000(2.090112) _tin_man2 1.570000 0.010000 1.580000(1.573887) 天人合一1.380000 0.000000 1.380000(1.388120) huluk 2.130000 0.010000 2.140000(2.134414) 固定佩里霍维奇2.120000.010000 2.130000(2.129399) A标题1 9.620000 0.020000 9.640000(9.646624) A标题2 12.410000 0.020000 12.430000(12.423327) 天马1号2.080000 0.010000 2.090000(2.0938) 天曼2 1.580000 0.010000 1.590000(1.581131) 锡人3 1.390000 0.000000 1.390000(1.400093) 样本串:ABCABC//// huluk:abcabc 佩里·霍里奇:ABCABC//// 修正了perry horwich:abcabc A标题1:ABCABC A标题2:ABCABC _tin_man1: sample string: abc// huluk: abc perry_horwich: abc// fixed_perry_horwich: abc apneadiving1: abc apneadiving2: abc the_tin_man1: abc the_tin_man2: abc the_tin_man3: abc user system total real huluk 1.840000 0.000000 1.840000 ( 1.849929) fixed_perry_horwich 1.840000 0.010000 1.850000 ( 1.847069) apneadiving1 1.900000 0.010000 1.910000 ( 1.900817) apneadiving2 4.860000 0.010000 4.870000 ( 4.883103) the_tin_man1 1.830000 0.000000 1.830000 ( 1.826547) the_tin_man2 1.150000 0.000000 1.150000 ( 1.151420) the_tin_man3 1.170000 0.010000 1.180000 ( 1.168161) huluk 1.820000 0.000000 1.820000 ( 1.825440) fixed_perry_horwich 1.830000 0.000000 1.830000 ( 1.827306) apneadiving1 1.850000 0.000000 1.850000 ( 1.853751) apneadiving2 4.830000 0.000000 4.830000 ( 4.825394) the_tin_man1 1.810000 0.000000 1.810000 ( 1.811503) the_tin_man2 1.150000 0.000000 1.150000 ( 1.151865) the_tin_man3 1.170000 0.000000 1.170000 ( 1.172259) sample string: abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc// huluk: abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc perry_horwich: abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc// fixed_perry_horwich: abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc apneadiving1: abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc apneadiving2: abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc the_tin_man1: abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc the_tin_man2: abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc the_tin_man3: abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc user system total real huluk 2.120000 0.000000 2.120000 ( 2.122156) fixed_perry_horwich 2.130000 0.010000 2.140000 ( 2.136665) apneadiving1 9.630000 0.030000 9.660000 ( 9.656817) apneadiving2 12.420000 0.030000 12.450000 ( 12.459432) the_tin_man1 2.080000 0.010000 2.090000 ( 2.090112) the_tin_man2 1.570000 0.010000 1.580000 ( 1.573887) the_tin_man3 1.380000 0.000000 1.380000 ( 1.388120) huluk 2.130000 0.010000 2.140000 ( 2.134414) fixed_perry_horwich 2.120000 0.010000 2.130000 ( 2.129399) apneadiving1 9.620000 0.020000 9.640000 ( 9.646624) apneadiving2 12.410000 0.020000 12.430000 ( 12.423327) the_tin_man1 2.080000 0.010000 2.090000 ( 2.090938) the_tin_man2 1.580000 0.010000 1.590000 ( 1.581131) the_tin_man3 1.390000 0.000000 1.390000 ( 1.400093) sample string: abcabcabcabcabcabcabcabcabcabc//// huluk: abcabcabcabcabcabcabcabcabcabc perry_horwich: abcabcabcabcabcabcabcabcabcabc//// fixed_perry_horwich: abcabcabcabcabcabcabcabcabcabc apneadiving1: abcabcabcabcabcabcabcabcabcabc apneadiving2: abcabcabcabcabcabcabcabcabcabc the_tin_man1: abcabcabcabcabcabcabcabcabcabc the_tin_man2: abcabcabcabcabcabcabcabcabcabc the_tin_man3: abcabcabcabcabcabcabcabcabcabc user system total real huluk 1.980000 0.010000 1.990000 ( 1.983149) fixed_perry_horwich 1.970000 0.010000 1.980000 ( 1.979796) apneadiving1 3.500000 0.010000 3.510000 ( 3.513885) apneadiving2 6.320000 0.020000 6.340000 ( 6.348327) the_tin_man1 2.070000 0.010000 2.080000 ( 2.075045) the_tin_man2 2.800000 0.000000 2.800000 ( 2.801136) the_tin_man3 1.840000 0.010000 1.850000 ( 1.851506) huluk 1.980000 0.010000 1.990000 ( 1.980867) fixed_perry_horwich 1.980000 0.010000 1.990000 ( 1.984776) apneadiving1 3.510000 0.010000 3.520000 ( 3.523383) apneadiving2 6.340000 0.020000 6.360000 ( 6.357442) the_tin_man1 2.070000 0.000000 2.070000 ( 2.074559) the_tin_man2 2.800000 0.010000 2.810000 ( 2.814275) the_tin_man3 1.850000 0.010000 1.860000 ( 1.855621) sample string: //////////// huluk: perry_horwich: //////////// fixed_perry_horwich: apneadiving1: apneadiving2: the_tin_man1: the_tin_man2: the_tin_man3: user system total real huluk 1.980000 0.010000 1.990000 ( 1.982700) fixed_perry_horwich 1.980000 0.010000 1.990000 ( 1.984354) apneadiving1 1.860000 0.000000 1.860000 ( 1.869155) apneadiving2 4.840000 0.020000 4.860000 ( 4.852445) the_tin_man1 2.010000 0.000000 2.010000 ( 2.020292) the_tin_man2 5.060000 0.020000 5.080000 ( 5.070202) the_tin_man3 6.390000 0.020000 6.410000 ( 6.412697) huluk 1.980000 0.010000 1.990000 ( 1.987652) fixed_perry_horwich 1.980000 0.010000 1.990000 ( 1.981360) apneadiving1 1.860000 0.000000 1.860000 ( 1.871577) apneadiving2 4.850000 0.020000 4.870000 ( 4.857329) the_tin_man1 2.010000 0.010000 2.020000 ( 2.023877) the_tin_man2 5.060000 0.010000 5.070000 ( 5.067753) the_tin_man3 6.410000 0.020000 6.430000 ( 6.434523)