gpt4 book ai didi

javascript - 转到 : regexp to swap cases

转载 作者:IT王子 更新时间:2023-10-29 02:17:56 25 4
gpt4 key购买 nike

我想在 Go 中使用正则表达式交换大小写。我尝试在 Javascript 中使用类似的方法,但我不知道如何让 Go 理解 $ 符号。

func swapcase(str string) string {
var validID = regexp.MustCompile(`[A-Z]`)
return validID.ReplaceAllString(str, strings.ToLower(str))

/*
var validID = regexp.MustCompile(`[a-z]`)
return validID.ReplaceAllString(str, strings.ToUpper(str))
*/
}

这是我的尝试。它适用于将所有大写字母转换为小写字母,反之亦然,但我想做的是同时交换每个字母。例如,“你好”--->“hELLO”

下面是我的 Javascript 代码,运行完美。

 function SwapCase(str) {

return str.replace(/([a-z])|([A-Z])/g,
function($0, $1, $2) {
return ($1) ? $0.toUpperCase() : $0.toLowerCase();
})
}

最佳答案

你不能(我认为)用正则表达式来做到这一点,但是用 strings.Map 就很简单了。

package main

import (
"fmt"
"strings"
)

func swapCase(r rune) rune {
switch {
case 'a' <= r && r <= 'z':
return r - 'a' + 'A'
case 'A' <= r && r <= 'Z':
return r - 'A' + 'a'
default:
return r
}
}

func main() {
s := "helLo WoRlD"
fmt.Println(strings.Map(swapCase, s))
}

关于javascript - 转到 : regexp to swap cases,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19064937/

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