拆分字符串并将分量计保持在结果中
本文关键字:结果 分量 字符 字符串 串并 拆分 | 更新日期: 2023-09-27 18:17:23
阅读这个问题,似乎正则表达式是我问题的解决方案。
这是我尝试拆分的 HTML:
'n't't't
<td class='"stats_name'">
Damage 'n't't't
<td class='"stats_value'">
53 'n't't't
<td class='"stats_modifier'">
(<span class='"ability_per_level_stat'">+3.2 / per level</span>) 'n't't'n't't
</td>
</td>
</td>
出于我的原因,我需要将其拆分为<td
字符串。这在HtmlAgilityPack和String.Split中工作得很好,但是分隔符被删除了,我需要它存在。
var statCells = rowDocument.DocumentNode.InnerHtml.Split(new string[] {"<td"}, StringSplitOptions.RemoveEmptyEntries).ToList();
这是使用正则表达式来保持分律仪的相同"函数",但是它没有按预期工作并且返回了太多字符串,我认为它分别在"<"t"和"d"上拆分。
var statCells = Regex.Split(rowDocument.DocumentNode.InnerHtml, @"(?<=[<td])").ToList();
如何使用正则表达式拆分"<td"
?
>@"(?<=[<td])"
在每个<
t
或d
上都会拆分,因为这就是字符类的工作方式。如果您希望<td
位于下一个字符串的开头(而不是最后一个字符串的末尾(,请使用以下命令:
@"(?=<td)"
不过,这将比原始解决方案慢。如果您使用 String.Split 并且只是将每个字符串与 <td
连接起来,那么这应该以相同的方式工作,但速度更快,因为您不使用正则表达式。