【问题标题】:How to remove text in brackets using a regular expression如何使用正则表达式删除括号中的文本
【发布时间】:2009-09-07 08:30:40
【问题描述】:

我正在寻找一个执行以下操作的正则表达式:

INPUT: User Name (email@address.com)
OUTPUT: User Name

实现这一目标的最佳方法是什么?使用正则表达式提取括号内的文本并替换 this 和任何 )( 字符?

【问题讨论】:

    标签: c# regex


    【解决方案1】:

    这应该可以完成工作:

    var input = "User Name (email@address.com)";
    var output = Regex.Replace(input, @" ?\(.*?\)", string.Empty);
    

    注意 () 字符的转义,以免它们被识别为组标记。

    【讨论】:

    • 这非常适合将“用户名 (1)、另一个用户 (2)、额外用户 (3)”转换为“用户名、另一个用户、额外用户”。谢谢你。
    【解决方案2】:

    您的意思是要输出用户名而不是电子邮件地址吗?无论哪种情况,您都不需要 正则表达式。例如,假设输入总是格式正确的,因此省略了任何错误检查,

    string output = input.Substring(0, input.IndexOf(" ("))
    

    将为您提供用户名。如果您确实想要电子邮件地址,也无需借助正则表达式即可获得:

    int n;
    string output = input.Substring(n = 1 + input.IndexOf('('),
                                    input.IndexOf(')') - n)
    

    【讨论】:

      【解决方案3】:

      我只是提供另一种方法来做到这一点,虽然我自己会使用正则表达式,因为这很笨重:

          string output = input.Split('(')[0].TrimEnd();
      

      【讨论】:

        猜你喜欢
        • 2010-10-13
        • 1970-01-01
        • 1970-01-01
        • 2011-05-16
        • 1970-01-01
        • 1970-01-01
        • 2020-02-14
        • 2018-08-25
        • 1970-01-01
        相关资源
        最近更新 更多