【发布时间】:2018-08-17 14:03:04
【问题描述】:
我正在解析一个 txt 文件(一本古老的赞美诗书)。我想做以下事情:
- 合唱团
- 解析/净化该合唱的每一行
我试过这段代码:
chorus_regex = /([^0-9]+\n)+/
puts hymn.gsub(chorus_regex) {|match| match.gsub(/^([^0-9]+\n)/, " \1")}
但是第二个gsub 只影响第一行?我认为这是因为\1 可能应用于第一个正则表达式,而不是第二个
TL;DR
如何编写嵌套的 gsub,以便您可以抓取 txt 块,对这些块执行 gsub,并用结果替换旧块?
编辑
我简化了正则表达式,所以问题集中在如何嵌套正则表达式 gsub,而不是被复杂的正则表达式或编码错误的字符分心。
【问题讨论】:
-
举个例子会很有帮助。
-
为什么你的文本文件包含“�”?这看起来像是一个损坏的编码。
-
@Stefan 是的,我正在清理一个相当破损的文档