gpt4 book ai didi

ruby - 用 BR 替换 unicode 换行符

转载 作者:太空宇宙 更新时间:2023-11-03 18:00:53 25 4
gpt4 key购买 nike

在我的 XML 文件中,有 unicode 换行符,如屏幕截图所示。使用此链接查看屏幕截图

bigger screenshot

“思想”之后的两个点。是换行符。我用谷歌搜索并尝试了几乎所有我知道的东西来用 ruby​​ (1.8) 替换它们,但没有任何运气。

这是我的代码(使用不同的 unicode 尝试),也许有人可以帮助我。

def formatedBody
t = self.body.gsub("\u000a","<br/>")
t = t.gsub("\u000d","<br/>")
t = t.gsub("\u0009","<br/>")
t = t.gsub("\u000c","<br/>")
t = t.gsub("\u0085","<br/>")
t = t.gsub("\u2028","<br/>")
t = t.gsub("\u2029","<br/>")
t = t.gsub(/0A\0A/u,"<br/>")
return t
end

最佳答案

两个0x0A值是换行符的十六进制表示。常规 ol' ASCII 换行符,又名 "\n\n"在一个字符串中。

所以,t = t.gsub(/\n/, "<br/>")应该可以。

t = "foo\u000d\u0009\u000c\u0085\u2028\u2029\nbar"
p t

t = t.gsub(/\u000d|\u0009|\u000c|\u0085|\u2028|\u2029|\n/,"<br/>")
puts t

您可以将 OR 字符列表替换为:

t = t.gsub(/[\u000d\u0009\u000c\u0085\u2028\u2029\n]/,"<br/>")

无论哪种方式,输出都是这样的:

"foo\r\t\f\u2028\u2029\nbar"
foo<br/><br/><br/><br/><br/><br/><br/>bar

你的原因

t = t.gsub(/0A\0A/u,"<br/>")

不起作用是因为正则表达式不正确。

t = t.gsub(/\x0A/,"<br/>")

是另一种定义方式:

t = t.gsub(/\n/,"<br/>")

关于ruby - 用 BR 替换 unicode 换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4950399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com