当前位置: 首页 > 面试题库 >

Golang正则表达式替换字符串之间

房星光
2023-03-14
问题内容

我有以下几种可能的形式的字符串:

MYSTRING=${MYSTRING}\n
MYSTRING=\n
MYSTRING=randomstringwithvariablelength\n

我希望能够将它正则化为MYSTRING=foo,基本上替换MYSTRING=和之间的所有内容\n。我试过了:

re := regexp.MustCompile("MYSTRING=*\n")
s = re.ReplaceAllString(s, "foo")

但这是行不通的。任何帮助表示赞赏。

PS \n表示有一个换行符用于此目的。实际上不在那里。


问题答案:

您可以使用

(MYSTRING=).*

并替换为${1}foo。请参阅在线Go regex演示。

在这里,(MYSTRING=).*匹配并捕获MYSTRING=子字符串(${1}它将从替换模式中引用此值),.*并将匹配并消耗除换行符以外的任何0+字符,直至行尾。

参见Go演示:

package main

import (
    "fmt"
    "regexp"
)

const sample = `MYSTRING=${MYSTRING}
MYSTRING=
MYSTRING=randomstringwithvariablelength
`
func main() {
    var re = regexp.MustCompile(`(MYSTRING=).*`)
    s := re.ReplaceAllString(sample, `${1}foo`)
    fmt.Println(s)
}

输出:

MYSTRING=foo
MYSTRING=foo
MYSTRING=foo


 类似资料:
  • 问题内容: 我正在尝试使用正则表达式替换字符串中所有出现的英国汽车登记信息。 当字符串与以下正则表达式完全匹配时,以下swift代码可完美地用于a。 结果是 但是,以下操作无效,并且字符串未修改 结果是 谁能给我任何指示? 问题答案: 您需要删除和锚点。 该装置 开始字符串 和手段 结束字符串 (或行,这取决于选项)。这就是第一个示例起作用的原因:在第一个测试字符串中,字符串的开头实际上是您的模式

  • 本文向大家介绍正则表达式的字符串替换方法,包括了正则表达式的字符串替换方法的使用技巧和注意事项,需要的朋友参考一下 我有以下几行: d:\Projects\qqq\Development\qqq.MySol1.sln d:\Projects\qqq\qqqDevelopment\qqqMySol2.sln d:\Projects\qqq\Development\MyInstaller.sln d:

  • 我想使用Gson将字符串转换为Foo对象: 下面是我的正则表达式: 如何使用此正则表达式将所有,.和替换为,,而不更改JSON中的键和值?

  • 我试图用正则表达式匹配替换给定的字符。例如,给定以下字符串: 如果你看看你生活中拥有的,你总是会拥有更多。如果你看看你生活中没有的,你永远不会有足够的 我想用“!”替换所有的“t”,只有在字符“ok”和“fe”之间匹配的情况下。 我用这个正则表达式得到“ok”和“fe”之间的匹配: 并且我只能将一个字符与以下正则表达式匹配: 我试图用以下方式转换正则表达式,但它不起作用: 我怎样才能在ok和fe之

  • 我试图匹配正则表达式模式来替换特定字符串。 示例文本:ABC/1111111 031111111/0318*12345678 我想用“/1222”替换03和18 in/0318,即(2022年12月)。我尝试了string replaceAll方法,但它替换了提供的示例字符串中所有匹配的字符。比如下面; 我尝试过的示例代码: 样本文本。替换(匹配器组(2),“12”); 样本文本。替换(匹配器组(

  • 我需要替换以下字符串中的引号。 最终输出应该是“这是test()ing和test()ing”; i、 e仅当它以“test()开头,以”结尾时才替换。中间的文本保持不变。 这个坏了。 请为同样的问题推荐合适的正则表达式。