gpt4 book ai didi

ruby-on-rails - 从字符串中删除重音符号/变音符号,同时保留其他特殊字符(尝试过 mb_chars.normalize 和 iconv)

转载 作者:数据小太阳 更新时间:2023-10-29 06:46:06 45 4
gpt4 key购买 nike

有一个很similar question已经。其中一种解决方案使用如下代码:

string.mb_chars.normalize(:kd).gsub(/[^x00-\x7F]/n, '').to_s

这会产生奇迹,直到您注意到它还删除了空格、点、破折号,谁知道还有什么。

我不太确定第一个代码是如何工作的,但是它可以去除 重音吗?或者至少得到一份要保留的字符列表?我对正则表达式的了解很少,但我尝试了(无济于事):

/[^\-x00-\x7F]/n # So it would leave the dash alone

我将要做这样的事情:

string.mb_chars.normalize(:kd).gsub('-', '__DASH__').gsub
(/[^x00-\x7F]/n, '').gsub('__DASH__', '-').to_s

残暴?是的……

我也试过:

iconv = Iconv.new('UTF-8', 'US-ASCII//TRANSLIT') # Also tried ISO-8859-1
iconv.iconv 'Café' # Throws an error: Iconv::IllegalSequence: "é"

请帮忙?

最佳答案

it also removes spaces, dots, dashes, and who knows what else.

不应该。

string.mb_chars.normalize(:kd).gsub(/[^x00-\x7F]/n, '').to_s

您打错了,x00 之前应该有一个反斜杠,表示 NUL 字符。

/[^\-x00-\x7F]/n # So it would leave the dash alone

您在“\”和“x”之间放置了“-”,这将打破对空字符的引用,从而打破范围。

关于ruby-on-rails - 从字符串中删除重音符号/变音符号,同时保留其他特殊字符(尝试过 mb_chars.normalize 和 iconv),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/522715/

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