正则表达式从字符串中删除[blah:...]标签

时间:2009-11-16 19:53:26

标签: c# regex

我正在使用这个正则表达式:

[Blah(?:\s*)\]

我想删除看起来像的标签:

[Blah:http:..anyting goes here so catch all types of characters ]

关于我的正则表达式有什么问题的任何提示?

3 个答案:

答案 0 :(得分:2)

\[Blah[^\]]*\]的正则表达式是通常的方法。这意味着:

  • 文字字符串[Blah
  • 零或更多:
    • 不是]
    • 的字符
  • 文字字符串]

如果你想处理嵌套(例如输入格式为[a[b[c]]]),那么你需要的不是正则表达式(这是为什么尝试使用正则表达式解析HTML不起作用的一个原因)。

答案 1 :(得分:1)

你的正则表达式[Blah(?:\s*)\]以未转义的'['开头,它被视为字符类的开头。这是你的正则表达式的错误(可能有更多的错误,但那是一个主要原因)。

答案 2 :(得分:0)

尝试将其更改为\[Blah[^\]]*\]\[Blah.*?\]。他们应该给出相同的结果,但他们的表现可能会有所不同。