gpt4 book ai didi

regex - 使用 golang 解析 Perl 正则表达式

转载 作者:IT王子 更新时间:2023-10-29 01:43:21 24 4
gpt4 key购买 nike

http://play.golang.org/p/GM0SWo0qGs

这是我的代码和 Playground 。

func insert_comma(input_num int) string {
temp_str := strconv.Itoa(input_num)
var validID = regexp.MustCompile(`\B(?=(\d{3})+$)`)
return validID.ReplaceAllString(temp_str, ",")
}

func main() {
fmt.Println(insert_comma(1000000000))
}

基本上,我想要的输入是 1,000,000,000。正则表达式在 Javascript 中有效,但我不知道如何使这个 Perl 正则表达式在 Go 中工作。我将不胜感激。谢谢,

最佳答案

由于前瞻断言似乎不受支持,我为您提供了一种没有正则表达式的不同算法:

Perl 代码:

sub insert_comma {
my $x=shift;
my $l=length($x);
for (my $i=$l%3==0?3:$l%3;$i<$l;$i+=3) {
substr($x,$i++,0)=',';
}
return $x;
}
print insert_comma(1000000000);

Go 代码:免责声明:我对 Go 的经验为零,所以如果我有错误请多多包涵,请随时编辑我的帖子!

func insert_comma(input_num int) string {
temp_str := strconv.Itoa(input_num)
var result []string
i := len(temp_str)%3;
if i == 0 { i = 3 }
for index,element := range strings.Split(temp_str, "") {
if i == index {
result = append(result, ",");
i += 3;
}
result = append(result, element)
}
return strings.Join(result, "")
}

func main() {
fmt.Println(insert_comma(1000000000))
}

http://play.golang.org/p/7pvo7-3G-s

关于regex - 使用 golang 解析 Perl 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19065093/

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