如何找到特定的BBCode标签的索引位置(正则表达式)

时间:2018-08-21 17:16:32

标签: c# regex bbcode

我有一个字符串,可以说:

[s]AB[/s]23[sb]45[/sb]AB45ABABAB

我想找到被包含字母s的标签所包围的所有索引,因此包含[s]和[sb]。

findIndices(“ [s] 01 [/ s] 23 [sb] 45 [/ sb] AB45ABABAB”,“ s”)的函数调用将返回列表[0,1, 4,5]。请注意,索引将忽略所有BBCode。换句话说,它认为第一个“ A”字符的索引为0,而不是3。

一种如何在C#中实现findIndices。我尝试使用System.Text.RegularExpressions,但遇到了麻烦,困难在于找到相对于已删除BBCode的字符串的索引。

1 个答案:

答案 0 :(得分:0)

例如(?<=[^/]s.?\]).+?(?=\[)这样的正则表达式模式将与例如AB45

我们检查(后面)是否有s],但后面没有/,然后匹配字符,直到我们击中[ 。我可能错过了一些极端情况,因此请谨慎行事并进行测试。

(如果您特别需要索引,则可以从正则表达式匹配对象中获取索引)