如何正确使用正则表达式

问题描述 投票:0回答:1

我想在golang中写一个正则表达式来去除引用单词中的空格,但是有一些条件: 如果前面有所谓的空格,则可以将引用视为引用, 如果单词中有引号(例如,不要),则不应使用它。

我试过这个功能:

func removeQuotationSpaces(s string) string {
    re := regexp.MustCompile(`['"]\s*(.*?)\s*['"]`)

    s = re.ReplaceAllString(s, " '$1' ")

    return s
}

大多数情况下似乎没问题,但是“'我不知道你是谁”变成了这个“'我不知道你是谁”

regex go
1个回答
0
投票
func removeQuotationSpaces(s string) string {
  re := regexp.MustCompile(`(?m)\b(?<!['"])\s*(['"])(?!\S)(.*?)\s*\1(?<! ['"])`) 
s = re.ReplaceAllString(s, "$1$2$1") 
return s
}

使用这个正则表达式,输入字符串“'我不知道你是谁”应该被转换为“'我不知道你是谁”而不添加任何额外的空格。

© www.soinside.com 2019 - 2024. All rights reserved.