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

标签 c# regex line character

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

        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();


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

关于c# - 正则表达式删除某个字符后的所有内容(注释),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7943674/

相关文章:

javascript - 将任何字符串转换为驼峰大小写

regex - 在 vim 搜索和替换中匹配右括号

variables - 如何在 Haskell 中分割线?

c# - 在静态类中使用依赖注入(inject)

c# - XNA 4.0 自定义顶点声明

Windows CE 5 中的 C# 应用程序最终崩溃

python - 如何从输入行中提取两个数字并用制表符分隔它们?

c# - 使用 XSLT 小写函数

Javascript 遍历字符串寻找多个字符集

c++ - 沿直线移动的算法