去 :正则表达式交换案例
Go : regexp to swap cases
我想在 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"--->"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))
}
相关文章:
- 如何使用offer/answer交换来自两个对等连接的流
- 简单的ES6承诺问题-交换解决和拒绝参数
- 我可以通过JQuery将CSS类交换为一个特殊的元素集吗
- 简单的交换程序无法使用javascript
- 在表单OnChange中交换数字顺序
- 通过Javascript将HTML中的电话号码与URL参数进行交换
- 用于交换两个变量的 JavaScript 函数
- 用javascript交换img标记
- 使用jquery交换并保存背景颜色
- 使用javascript onclick下拉菜单进行图像交换
- 交换对象上两个属性的值
- 如何在Javascript中交换两个列表的子列表
- 用较大的图像交换缩略图
- 使用JavaScript在菜单中交换图像
- JavaScript数组:交换显示的内容
- 交换二'onclicks'即
- Javascript中的图像交换
- 打开和关闭的图像交换未在正确的时间更改
- 去 :正则表达式交换案例
- 更高效的JS案例交换