如何编写从字符匹配到行尾的正则表达式?

时间:2016-04-06 10:32:45

标签: regex qt

我想要一个正则表达式来清除(每行)#符号后面的任何内容。所以我写了这样的代码:

contents.replace(QRegExp("#.*\n"),"")

但是,由于.也与换行符匹配,因此在第一个#之后清除了所有内容。那么我怎样才能正确编写正则表达式呢?

1 个答案:

答案 0 :(得分:2)

您需要一个否定的字符类[^\n]

contents.replace(QRegExp("#[^\n]*"),"")

这会删除#以及该行的其余部分。

请参阅regex demo at regex101.com(它在Qt中的工作方式相同)。

如果您还需要删除换行符,请将其添加到模式中:

contents.replace(QRegExp("#[^\n]*\n"),"")