c# - 帮助删除标签正则表达式

标签 c# regex

我的字符串格式为:“[user:fred][priority:3]Lorem ipsum dolor sat amet”。其中方括号内的区域是标签(格式为 [key:value])。我需要能够使用以下扩展方法删除特定标签(因为它是关键标签):

public static void RemoveTagWithKey(this string message, string tagKey) {
    if (message.ContainsTagWithKey(tagKey)) {
        var regex = new Regex(@"\[" + tagKey + @":[^\]]");
        message = regex.Replace(message , string.Empty);
    }
}
public static bool ContainsTagWithKey(this string message, string tagKey) {
    return message.Contains(string.Format("[{0}:", tagKey));
}

仅应从字符串中删除具有指定键的标签。我的正则表达式不起作用,因为它很愚蠢。我需要帮助才能正确编写它。或者,欢迎不使用正则表达式的实现。

最佳答案

我知道还有更多功能丰富的工具,但我喜欢 Code Architects Regex Tester 的简单和干净。 (又名 YART:另一个正则表达式测试器)。在 TreeView 中显示组和捕获,速度相当快,非常小,开源。它还生成 C++、VB 和 C# 代码,并可以自动转义或取消转义这些语言的正则表达式。我将它转储到我的 VS 工具文件夹 (C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools) 中,并在“工具”菜单中使用“工具”>“外部工具”为其设置一个菜单项,这样我就可以从 VS 内部快速启动它.

正则表达式有时很难编写,我知道能够测试正则表达式并随时查看结果确实很有帮助。

alt text
(来源:dotnet2themax.com)

另一个非常受欢迎(但不是免费)的选项是 Regex Buddy .

关于c# - 帮助删除标签正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1491555/

相关文章:

python3 正则表达式返回空元组

php - 这个正则表达式是什么意思?

c# - 使用 SSH.NET 查找具有特定文件名的最新 SFTP 文件

c# - 编写一个扫描电子商务网站并从中提取产品图片+价格+描述的C#程序

c# - XML 解析 : line 1, 字符 7,需要分号

c# - 如何在EMGUCV中使用Facemarker?

java - 在 java 中将 "aa"与 "aaaa"匹配会返回 2——我希望它是 3

Java 正则表达式 : Splitting based on multiple conditions with exceptions

javascript - 需要帮助理解 Javascript 的 .match 方法

c# - 无法从单例 'MyDbContext' 使用范围服务 'Microsoft.AspNetCore.Hosting.Internal.HostedServiceExecutor'