Tag: recursive regex

帮助修复BBcode正则表达式

我有一个抓住bbcode标签的正则表达式。 除了小故障外,它的效果很好。 这是当前的表达式: \[([^=\[\]]+)[=\x22′]*([^ \[\]]*)[‘\x22]*\](.+)\[/\1\] 以下是它成功匹配的一些文本及其构建的组: [url = http://www.google.com]转到谷歌![/ url] 1:url 2: http : //www.google.com 3:去谷歌! [IMG] http://sofzh.miximages.com/c%23/f [/ IMG] 1:img 2:NULL 3: http : //www.somesite.com/someimage.jpg [quote] [quote]第一次嵌套引用[/ quote] [quote]第二次嵌套引用[/ quote] [/ quote] 1:引用 2:NULL 3:[quote]第一次嵌套引用[/ quote] [quote]第二次嵌套引用[/ quote] 所有这一切都很棒。 我可以通过对同一个正则表达式运行第三个匹配组来处理嵌套标记,并递归处理嵌套的所有标记。 问题在于使用[quote]标签的示例。 请注意,第三个匹配组是一组两个引用标记,因此我们期望两个匹配。 但是,我们得到一个匹配,如下所示: [quote]第一次嵌套引用[/ quote] [quote]第二次嵌套引用[/ quote] 1:引用 2:NULL 3:第一次嵌套引用[/ quote] [quote]第二次嵌套引用 哈啊! 这根本不是我们想要的。 […]

使用正则表达式c递归获取内部模式

我知道.net中有关于正则表达式递归的几个问题。 我可以编写一些复杂的正则表达式,但这种递归超出了我,我只是无法编写它。 这是最接近我想要的问题。 第一个问题, 第二个问题 。 但它匹配整个字符串,我希望集合中的匹配最好是最里面的匹配,或者按照某种顺序。 它还匹配一个开头字符和一个结束字符。 我打开和关闭是2个字符,[! 和!] 我的输入字符串将是这样的。 [!a=’test’ b='[!a=’innertest’ b=’innervalue’!]’!] 我需要首先找到最新的部分, [!a=’innertest’ b=’innervalue’!],然后通过我的一个表达式树来评估它。 然后评估包含它的父母。 有人能帮忙吗?