为了账号安全,请及时绑定邮箱和手机立即绑定

Go : regexp 交换案例

Go : regexp 交换案例

Go
小唯快跑啊 2021-06-09 18:51:40
我想在 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))*/}这是我的尝试。它适用于将所有上转换为下,反之亦然,但我想要做的是同时交换每个字母。例如,“你好”--->“你好”以下是我在 Javascript 中运行完美的代码。 function SwapCase(str) {     return str.replace(/([a-z])|([A-Z])/g,        function($0, $1, $2) {            return ($1) ? $0.toUpperCase() : $0.toLowerCase();        }) }
查看完整描述

1 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

你不能(我认为)用正则表达式来做到这一点,但使用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))

}


查看完整回答
反对 回复 2021-06-28
  • 1 回答
  • 0 关注
  • 163 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信