去:regexp交换案件 [英] Go : regexp to swap cases
本文介绍了去:regexp交换案件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在Go中使用regexp交换个案。我试图在JavaScript中使用类似的方法,但我无法弄清楚如何让Go了解$符号。
func swapcase (str string)string {
var validID = regexp.MustCompile(`[AZ]`)
return validID.ReplaceAllString(str,strings.ToLower(str))
/ *
var validID = regexp.MustCompile(`[az]`)
return validID.ReplaceAllString(str,strings.ToUpper(str))
* /
}
这是我的尝试。它适用于将所有字母从上到下转换,反之亦然,但我想要做的是同时交换每个字母。例如,Hello--->hELLO
以下是我在Javascript中的代码,它完美无缺。
函数SwapCase(str){
return str.replace(/([az])|([AZ])/ g,
函数($ 0,$ 1,$ 2){
return($ 1)?$ 0.toUpperCase():$ 0.toLowerCase();
})
}
$你不能(我认为)用正则表达式来做这件事,但它很直接 strings.Map
。 包主
$ f
$ b $ func swapCase(r rune)rune {
switch {
case' a'< = r& amp;& r< ='z':
return r - 'a'+'A'
'A'< = r&& r <='Z':
return r - 'A'+'a'
default:
return r
}
}
$ func main(){
s:=helLo WoRlD
fmt.Println(strings.Map(swapCase,s))
}
I want to swap cases using regexp in Go. I tried to use the similar method in Javascript but I can't figure out how to make Go understand $ sign.
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))
*/
}
This was my try. It works for converting all upper to lower, and vice versa, but what I want to do is to swap every letter at the same time. For example, "Hello" ---> "hELLO"
And the following is my code in Javascript that works perfect.
function SwapCase(str) {
return str.replace(/([a-z])|([A-Z])/g,
function($0, $1, $2) {
return ($1) ? $0.toUpperCase() : $0.toLowerCase();
})
}
解决方案 You can't (I think) do this with a regexp, but it's straightforward with 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))
}
这篇关于去:regexp交换案件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文