Ruby 正则表达式匹配大写单词并替换为大写

Ruby 正则表达式匹配大写单词并替换为大写,ruby,regex,match,uppercase,Ruby,Regex,Match,Uppercase,例如: 如何连接串行ATA硬盘HP 3D驱动器 我想用ruby中的正则表达式将ATA替换为ATA,但不包括3D。大部分是英语单词 另一个例子: CD/DVD存储钱包-80件尼龙=>CD/DVD存储钱包-80件尼龙 D-Link DGS-1005G 6端口正确资源=>D-Link DGS-1005G 6端口正确资源 HP85 C9429A OEM PUT返回介于之间=>HP85 C9429A OEM PUT返回介于之间 示例INDENT76 469函数,10x2链接=>示例INDENT76 469

例如: 如何连接串行ATA硬盘HP 3D驱动器

我想用ruby中的正则表达式将ATA替换为ATA,但不包括3D。大部分是英语单词

另一个例子: CD/DVD存储钱包-80件尼龙=>CD/DVD存储钱包-80件尼龙

D-Link DGS-1005G 6端口正确资源=>D-Link DGS-1005G 6端口正确资源

HP85 C9429A OEM PUT返回介于之间=>HP85 C9429A OEM PUT返回介于之间

示例INDENT76 469函数,10x2链接=>示例INDENT76 469函数,10x2链接


谢谢 这样的正则表达式是:


事实上,分词不是主要的,有时词与词之间没有分词。我只想找出大写字母,除了日常大写缩写和包括数字在内的大写字母。那么,你需要提供一个你想跳过的缩写的列表。你说不破口大骂是什么意思?请编辑您的问题以提供更多示例。谢谢,已更新。对于缩写,我将添加一个要跳过的数组。这不是双向转换。你可以改变一切,但很难改变它。我想没有算法可以可靠地做到这一点。边缘案例太多。如何区分包含数字的内容?哪一个字母应该小写?例如,缩进76和6PORT是小写的,但不是1005G、HP85或C9429A-为什么?我认为这是一个品牌常见的缩写,所以它不会小写,无论如何,我会添加一个列表来使用编程语言跳过它。具有3个及以上字符的数字将为小写。我想我需要一个正则表达式来检查2个或以上的单词是否为大写,并且我将使用编程语言大写。