Skip to main content
 首页 » 编程设计

c#之正则表达式删除某个字符后的所有内容(注释)

2024年01月18日26freeliver54

我有一个正则表达式,用于删除特定字符(分号)后的所有内容。

        var regex = new Regex(@";(.*)", RegexOptions.Singleline); 
        tb.Text = regex.Replace(tb.Text, ""); 


它似乎工作正常,但有时会删除文本框的整个文本。例如,以下所有代码均已删除:

;fgkdfgdfgd 
;dfgdfkghdfgdf 
;sdgfsdfsdfsdf 
;dfgdfgdfg 
 
#dont remove this          ;fgdfgdfg 


“ #dont remove this”应该保持不变,因为它不是在分号后面,但是不是吗?我的正则表达式有问题吗?

这个想法是删除或修剪文件中的所有注释。

请您参考如下方法:

试试(评论后更新):

tb.Lines = ( 
    from l in tb.Lines  
    let x = l.IndexOf (';')  
    select (x >= 0 ? l.SubString (0, x) : l) 
).ToArray(); 


这也应该比正则表达式运行得更快...