- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在用 Ruby (1.9.3) 制作一个基本的翻译器。我从本地测试文件('a.txt')中提取并使用 gsub 替换某些匹配项以模仿从当代英语到中/早期现代英语的翻译。我遇到了可读性问题:
如何使大量的 gsub 用法更易于阅读?我尝试使用以
开头的多行def translate
@text.gsub(/my/, 'mine')
@text.gsub(/\sis\s/, ' be ')
end
但这只会打印最终的 gsub。我只能假设第二个请求会覆盖第一个。我想避免创建大量的 gsub 请求,但我似乎找不到合适的答案。
这是我当前程序的示例:
lines = File.readlines('a.txt')
@text = lines.join
def translate
@text.gsub(/my/, 'mine').gsub(/\sis\s/, ' be ').gsub(/y\s/, 'ye ').gsub(/t\s/, 'te ').gsub(/t\,/, 'te,').gsub(/t\./, 'te.')
end
puts translate
如果这个请求看起来非常基础,我提前道歉。干杯!
最佳答案
第二个调用不会覆盖第一个。第一次调用返回一个 @text
的副本并进行了替换,但您没有对该返回值执行任何操作。如果要修改@text
,需要改用gsub!
。如果您不想修改 @text
,则需要链接 gsub
调用。例如,如果您有来自 slivu's answer 的映射哈希,这将返回翻译后的文本,而无需实际修改 @text
实例变量:
def translate
RegexMap.inject(@text) do |string, mapping|
string.gsub(*mapping)
end
end
传递给 inject
的 block 在每个映射(RegexMap
中的键/值对)调用一次。第一次,string
是传递给 inject
的值 - 即 @text
。之后,每个后续调用都会将前一个调用的返回值作为其 string
值传入。所以就好像你这样做了,但是映射集更容易配置:
@text.gsub(/my/,'mine').gsub(/\sis\s/, ' be ').gsub(/y\s/,'ye ').gsub....
关于ruby - 在 Ruby 中使用多个 'gsub' 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13556555/
我正在编写一个程序,它将从 who 命令中提取信息并格式化输出。 普通 who 命令: user ip date (ip) user ip date (ip) user ip date (ip) us
我有一个包含以下数据的文件- 输入- A B C D E F A B B B B B C A C D E F A B D E F A A A A A A F A B C B B B 如果从第 2 行开
这个问题在这里已经有了答案: How to prevent regmatches drop non matches? (4 个回答) 5年前关闭。 我正在浏览一个字符向量(大约 10,000 个条目)
我想连续生成一个Employee_ID,我已经在数据库表中修复了一个初始员工ID。格式为“E36162000”,我从表中获取最后一个员工 ID,然后仅提取整数值,然后加一,这将是下一个 employe
使用以下函数,我转到一个站点,抓取一些信息,返回一些 JSON,并将其放入 @price 实例变量中。 返回给我的 JSON 是一个数字,但是如果数字大于 1000,那么数字将包含一个逗号,所以我将其
我在运行脚本时不断收到此错误。我对 Ruby 很陌生,所以请原谅我的傲慢。 我正在使用内置了 JRuby 支持的 Nuix 编写脚本。 这是我的代码; require 'benchmark' requ
我在 R 中工作,并且仅在没有左括号时才尝试删除右括号。我在下面尝试过,但没有返回所需的输出。 test <- data.frame(t1 = c("Book (Pg 1)", "Website On
我正在尝试从 Chandler 中删除标点符号和数字成为Chandler .这是我目前正在尝试的: df$city <- gsub("[[:punct:]]|[[:digit:]]", "", df$
我正在尝试生成结合 n 个高斯的函数,并使用从 nls 中检索到的值跑。我用 gsub用 nls 替换原始系数那些使用反向引用的。然而,似乎[在 \\1 之前对 datafame 进行评估. 这是一个
这个问题在这里已经有了答案: What regex will match every character except comma ',' or semi-colon ';'? (4 个回答) 5年前
我有一个日志数据集: V1 duration id startpoint T161[=]Pexplorer.exe[=]I1820[=]W20094[=]V6.00.2900.5512 777
我正在使用 local mystring = 'Thats a really nice house.' string.gsub(mystring,"% ", "/",1) 用斜杠替换第一个空格字符。
我有一些正在使用的 html 代码。我想提取某些字符串。 我想使用 从字符串 x 中提取它的首选基础 R :coleman_l, SMOG4 这是我所拥有的: x (hi)auto(coleman_l
我希望这是足够不同的相关,之前的帖子来证明它自己的线程是合理的;不幸的是,他们对我没有帮助。我认为我对部分替换的兴趣,加上通配符的使用迄今为止是独一无二的,但如果我只是没有足够仔细地搜索或阅读,我深表
我有一个字符串"ab b cde",即"ab[space]b[space]cde"。我想用空格替换“space-b”和“space-c”,以便输出字符串为"ab[space][space][space
我正在尝试清理一些文本字符串,以便我可以干净地解析出一些脚本信息。对于这些表格,括号中的信息表示脚本的位置或阻塞注释。 我想获取所有括号内的信息,并删除括号及其所有包含的字符。工作中的关键在于,由于数
任何人都可以通过 gsub 帮助实现以下目标在R? input string: a=5.00,b=120,c=0.0003,d=0.02,e=5.20, f=1200.0,g=850.02 desir
给定字符串: smple_paths <- c("/path/path/path/abc22/path/path", "/apath/apath/paath/abc1
似乎当我添加一个特殊字符时 gsub 不再适合我。 我如何使用带有此类字符的文本 print(string.gsub("a !foo walking", "%a+",{ ["!foo"] =
我有一批样本要提交给我的大学集群进行处理。我有超过 1000 个样本需要运行。不必手动创建脚本,我想知道我可以制作一个 for 循环来替换示例 ID。每个脚本本质上是相同的,我只需要更改示例 ID 和
我是一名优秀的程序员,十分优秀!