gpt4 book ai didi

regex - 如何选择具有自定义单词边界的第一个字符?

转载 作者:行者123 更新时间:2023-12-01 22:08:54 24 4
gpt4 key购买 nike

我用一系列这样的单词测试了案例:

    {
input: "Halley's Comet",
expected: "HC",
},
{
input: "First In, First Out",
expected: "FIFO",
},
{
input: "The Road _Not_ Taken",
expected: "TRNT",
},

我想用一个正则表达式匹配这些单词的所有首字母,避免将char:“_”作为首字母匹配,并在单词中计算单引号。
目前,我有此正则表达式在pcre语法上工作,但不适用于Go regexp包: (?<![a-zA-Z0-9'])([a-zA-Z0-9'])我知道Go不支持环视功能,但我正在寻找一种做到这一点的好方法。

我还使用此func来获取所有字符串的数组: re.FindAllString(s, -1)
感谢您的帮助。

最佳答案

具有字符类和单词边界的功能就足够了:

\b_*([a-z])[a-z]*(?:'s)?_*\b\W*

demo

用法:
package main

import (
"fmt"
"regexp"
)

func main() {
re := regexp.MustCompile(`(?i)\b_*([a-z])[a-z]*(?:'s)?_*\b\W*`)
fmt.Println(re.ReplaceAllString("O'Brian's dog", "$1"))

}

关于regex - 如何选择具有自定义单词边界的第一个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58465949/

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