我需要获取一个字符串,该字符串仅包含 之间的文本 一对已定义的标记以及包含 文本的字符串< / em> 标签。由于文字位于HTML <p>
标记内,因此&lt; 和&gt; 的解释类似于<
和{{ 1}}(据我所知,这使得无法像HTML Agility Pack一样使用解析器)
所以输入字符串如下所示:
>
我现在正在使用以下代码,但它只获得第一次出现而不是第二次出现:
Text outside of tags
<internal> First occurance of text inside of tags </internal>
More text outside of tags
<internal> Second occurance </internal>
答案 0 :(得分:1)
答案 1 :(得分:1)
哦,代码实际上有效。它没有发现第二次出现的原因是在某些情况下,正在创建文档的编辑器和标签内部的文本标签,这使得正则表达式无法与之匹配。我把正则表达式改为:
Regex regex = new Regex(@"(<.*?internal.*?>(.*?)<.*?/.*?internal.*?>)", RegexOptions.Singleline);
非常感谢!
答案 2 :(得分:-1)
使用\<
和\>
代替<
和>
(\<internal\>(.*?)\</internal\>)