Ruby 正则表达式转换大写单词并保留标题化单词
Ruby regex to convert uppercased words and keep titleized ones
给定的字符串"Lorem IPSUM dolor Sit amet"。 "Lorem" 和 "Sit" 中的大写字母应保留,大写字母如 "IPSUM" 应转换为 "Ipsum"
如何使用 gsub 从给定的字符串生成 "Lorem Ipsum dolor Sit amet"?
不工作的例子:s.gsub(/[[:upper:]]/){$&.downcase}
您可以将 capitalize
与 /\b[[:upper:]]{2,}\b/
正则表达式一起使用:
s.gsub(/\b[[:upper:]]{2,}\b/){$&.capitalize}
# => Lorem Ipsum dolor Sit amet
请注意,\b[[:upper:]]{2,}\b
模式将匹配仅包含 2 个或更多大写字母的整个单词(因为 \b
是单词边界)(似乎不需要匹配像 [=15 这样的单词=] 已经可以了)。
给定的字符串"Lorem IPSUM dolor Sit amet"。 "Lorem" 和 "Sit" 中的大写字母应保留,大写字母如 "IPSUM" 应转换为 "Ipsum"
如何使用 gsub 从给定的字符串生成 "Lorem Ipsum dolor Sit amet"?
不工作的例子:s.gsub(/[[:upper:]]/){$&.downcase}
您可以将 capitalize
与 /\b[[:upper:]]{2,}\b/
正则表达式一起使用:
s.gsub(/\b[[:upper:]]{2,}\b/){$&.capitalize}
# => Lorem Ipsum dolor Sit amet
请注意,\b[[:upper:]]{2,}\b
模式将匹配仅包含 2 个或更多大写字母的整个单词(因为 \b
是单词边界)(似乎不需要匹配像 [=15 这样的单词=] 已经可以了)。