gpt4 book ai didi

regex - 如何使正则表达式第一次出现效果。 ( Kotlin )

转载 作者:行者123 更新时间:2023-12-02 13:06:42 26 4
gpt4 key购买 nike

说我有一个字符串,其中包含一个带有注释的程序,如下所示:

var iString = "int i; //A variable \n" +
"//This is a text with notes \n" +
"//Can you remove them? \n" +
"cout<<i; //printing i \n"

我创建了一个可以识别注释的正则表达式:
var notes1= ("/"+"(\\s)*"+"/"+"(\\w|[^\\w])*"+"\\n").toRegex()

问题是编写 var newString = iString.replace(notes1,"")

我接受newString为: "int i; cout<<i \n"
相反,结果是: "int i;"
正则表达式“吞噬”整个字符串,直到最后一个 "\n"为止,而我想要的是在有机会时结束。

如何在Kotlin中定义它?

最佳答案

X*是贪婪的量词(请参阅Quantifiers (The Java™ Tutorials > Essential Classes > Regular Expressions)。

您可以使用X*?代替,它是一个不愿意的量词:

var iString = "int i; //A variable \n" +
"//This is a text with notes \n" +
"//Can you remove them? \n" +
"cout<<i; //printing i \n"
var notes1= ("/"+"(\\s)*"+"/"+"(\\w|[^\\w])*?"+"\\n").toRegex()
println(iString.replace(notes1, ""))

输出:

int i; cout<<i; 

关于regex - 如何使正则表达式第一次出现效果。 ( Kotlin ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37146888/

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