C#中用于解析BBCode样式标记的正则表达式

C#中用于解析BBCode样式标记的正则表达式,c#,regex,C#,Regex,我需要一个正则表达式,它匹配一些用方括号括起来的标记。没什么特别的,我只是需要它来匹配标签。例如: [quote] [/quote] [b] [url] 等 我不需要它来担心关闭标签或任何事情。我只想得到一个文本中所有标记的集合。我的正则表达式知识非常有限。如果您不担心匹配末端或嵌套或任何这些愚蠢的复杂情况,这将匹配并捕获这些标记: (\[[^\]]*\]) 如果您不担心匹配末端或嵌套或任何这些愚蠢的复杂情况,这将匹配并捕获这些标记: (\[[^\]]*\]) 如果您不关心

我需要一个正则表达式,它匹配一些用方括号括起来的标记。没什么特别的,我只是需要它来匹配标签。例如:

[quote]  
[/quote]  
[b]  
[url]  


我不需要它来担心关闭标签或任何事情。我只想得到一个文本中所有标记的集合。我的正则表达式知识非常有限。

如果您不担心匹配末端或嵌套或任何这些愚蠢的复杂情况,这将匹配并捕获这些标记:

(\[[^\]]*\])

如果您不担心匹配末端或嵌套或任何这些愚蠢的复杂情况,这将匹配并捕获这些标记:

(\[[^\]]*\])

如果您不关心方括号内文本的组成,则以下表达式应该可以工作:
\[[^\]]+\]
。如果要限制为字母数字字符,
\[/?[A-Za-z0-9]+\]
将起作用。或者,如果只需要字母字符,则从字符集中删除0-9。

如果您不关心方括号内文本的组成,则以下表达式应该可以使用:
\[^\]+\]
。如果要限制为字母数字字符,
\[/?[A-Za-z0-9]+\]
将起作用。或者,如果只需要字母字符,则从字符集中删除0-9。

@ashelvey:该表达式太贪婪,匹配太多
(\[.*?\])
将是同一表达式的不情愿版本


如果你只想匹配里面的标签,你可以使用
(?@ashelvey:这个表达式太贪婪了,匹配太多。
(\[.*?\])
将是同一个表达式的不情愿的版本


如果你只想匹配里面的标签,你可以使用
(?完美,这就是我所需要的。不用担心愚蠢的复杂:)谢谢。嗯,似乎有问题。让我在expresso中获得结果的屏幕截图。使用类
[^\]
或惰性操作符:
(\[^\]*\]),这可能会有所改进
(\[.*?\])
明白了。这就是我所说的整个嵌套问题:)我将编辑此答案以使用Paul处理该案例的示例谢谢Ashelvey。我会在几分钟内接受它,当它让我。完美的,这就是我所需要的。不用担心那些愚蠢的复杂问题:)谢谢。嗯,似乎有问题了。让我在expresso中获得一个结果的屏幕截图。这可能是通过类
[^\]
或惰性操作符得到改进的:
(\[^\]*\])
(\[.\]]
明白了。这就是我所说的整个嵌套问题:)我将编辑这个答案,以使用Paul的例子来处理这个问题谢谢Ashelvey。我会在几分钟后接受。谢谢你,非常有用。谢谢你,非常有用。另外,如果你想忽略结束标记:
(?另外,如果你想忽略结束标记:
(?)?