如何在第一时间结束正则表达式。 (科特林)

时间:2016-05-10 19:03:27

标签: regex kotlin

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

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中定义它?

1 个答案:

答案 0 :(得分:5)

MaskedWalletRequest是一个贪婪的量词(见Quantifiers (The Java™ Tutorials > Essential Classes > Regular Expressions)。

您可以使用FullWalletRequest代替这是一个不情愿的量词:

X*

输出:

X*?