当前位置: 首页 > 知识库问答 >
问题:

去除特定控制字符的ruby字符串

董联
2023-03-14

这很简单:如何去除特殊字符的红宝石字符串?角色如下:http://www.fileformat.info/info/unicode/char/2028/index.htm

这是一个字符串,在句点和结尾引号之间有两个特殊字符:

"Each of the levels requires logic, skill, and brute force to crush the enemy.

"

我尝试了以下方法,但没有成功:

string.gsub!(/[\x00-\x1F\x7F]/, '')

gsub(“/\n/”,“”)

我使用的是红宝石 1.9.3p125

共有2个答案

夏朗
2023-03-14

我想出来了<代码>。gsub(/\u2028/,'')

诸新霁
2023-03-14

< code>String#gsub可以工作,但是比String#tr更通用,效率更低

irb> s ="Hello,\u2028 World; here's some ctrl [\1\2\3\4\5\6] chars"
=> "Hello,\u2028 World; here's some ctrl [\u0001\u0002\u0003\u0004\u0005\u0006] chars"

irb> s.tr("\u0000-\u001f\u007f\u2028",'')
=> "Hello, World; here's some ctrl [] chars"

require 'benchmark'
Benchmark.bm {|x|
  x.report('tr')   { 1_000_000.times{ s.tr("\u0000-\u001f\u007f\u2028",'') } }
  x.report('gsub') { 1_000_000.times{ s.gsub(/[\0-\x1f\x7f\u2028]/,'') } }
}

          user     system      total        real
tr    1.440000   0.000000   1.440000 (  1.448090)
gsub  4.110000   0.000000   4.110000 (  4.127100)
 类似资料:
  • 本文向大家介绍Python 去除字符串中指定字符串,包括了Python 去除字符串中指定字符串的使用技巧和注意事项,需要的朋友参考一下 1、背景 最近的项目中,再次踩到Python字符串处理的坑,决定把此次解决方案记录一下,以勿踩坑。 2、遇到坑 原本字符串:大坪英利国际8号楼88-88号重庆汉乔科技有限公司大坪英利国际8号楼 去除最左边的字符串:大坪英利国际8号楼 预期结果:88-88号重庆汉乔

  • 问题内容: 如何从PHP字符串中删除STX等控制字符?我玩过 但发现它消除了很多麻烦。有没有办法 只 删除 控制字符? 问题答案: 如果用控制字符表示前32个ASCII字符和(包括回车等),那么它将起作用: (请注意单引号:双引号的使用会以某种方式导致解析错误。) 可以这样删除换行和回车符(通常写为和),以免删除: 更好地传达了代码的作用。 警告: PHP> = 5.3.0中已弃用,而PHP> =

  • 本文向大家介绍去除字符串中最后一个指定的字符相关面试题,主要包含被问及去除字符串中最后一个指定的字符时的应答技巧和注意事项,需要的朋友参考一下

  • 问题内容: 我目前有以下代码 如果要删除多个字符,这是行不通的。 问题答案: Unicode中有 数百个 控制字符。如果您要清理来自Web或其他可能包含非ASCII字符的其他来源的数据,则需要Python的unicodedata模块。该函数返回任何字符的unicode类别代码(例如,控制字符,空格,字母等)。对于控制字符,类别始终以“ C”开头。 此代码段从字符串中删除所有控制字符。 unicod

  • 问题内容: 我目前正在做一个数据转换项目,需要从字符串中剥离所有字母字符。不幸的是,由于我们不拥有源计算机,因此我无法创建或使用函数,从而使我无法通过搜索以前的帖子找到的方法。 在select语句中执行此操作的最佳方法是什么?速度不是一个太大的问题,因为它只能运行30,000左右左右的记录,而且是一次过的声明。 问题答案: RichardTheKiwi的脚本中用于无交叉选择的选择中的函数,还添加了

  • 问题内容: 我正在尝试使用Python从字符串中删除特定字符。这是我现在正在使用的代码。不幸的是,它似乎对字符串没有任何作用。 如何正确执行此操作? 问题答案: Python中的字符串是不可变的(无法更改)。因此,的效果只是创建一个新字符串,而不是更改旧字符串。你需要重新绑定(分配)到line该变量,以使该变量采用新值,并删除这些字符。 而且,相对而言,你的操作方式会比较缓慢。这也可能会使经验丰富