我有一个字符串,可以说:
[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的字符串的索引。
答案 0 :(得分:0)
例如(?<=[^/]s.?\]).+?(?=\[)
这样的正则表达式模式将与例如AB
和45
我们检查(后面)是否有s
和]
,但后面没有/
,然后匹配字符,直到我们击中[
。我可能错过了一些极端情况,因此请谨慎行事并进行测试。
(如果您特别需要索引,则可以从正则表达式匹配对象中获取索引)