如何用,等..用正则分割字符串

时间:2021-09-29 11:55:39
想用标签:
<p>,</p>,<P>,</P>,<br>,</br>,<Br>,</Br>,<BR>,</BR> 

来分隔位置组成数组,可以用

strTemp=" 首页<p> 空间</BR> 新闻<Br> 论坛</P> 博客<br>";

string[] temp = strTemp.Split(new string[] { "<p>","</p>","<P>","</P>","<br>","</br>","<Br>","</Br>","<BR>","</BR>" }, StringSplitOptions.None);


分割的数组元素是这样的
temp[0]=首页
temp[1]=空间
temp[2]=新闻
temp[3]=论坛
temp[4]=博客

请问我如果用正则如何做??????, 用string.split感觉有点傻傻的,我如果要加一个标签<hr>,我不是又要加好几个...还是正则强大.....


=======================================
下面是我用正则表达式.分割出来的.但是得到的结果全部是 html 标签符号"<p>","</p>","<P>","</P>","<br>","</br>","<Br>","</Br>","<BR>","</BR>" 

Regex reg1 = new Regex("(?i)</?(p|br)>");

            MatchCollection mc = reg1.Matches(richTextBox1.Text);
            foreach (Match m in mc)
            {
                richTextBox2.Text += m.ToString() + "\r\n";
            }

8 个解决方案

#1


        string[] strs = Regex.Split(strTemp, "<[^>]*>");
//结果上有空字符串

#2


我只想提取<p>,<br>的,这个提取所有的<>

#3


正则改为 "(?i)</?(p|br)>"

#4


(?i)</?( ?:p|br)>

#5


引用 4 楼 sprc_lcl 的回复:
(?i)</?(?:p|br)>


只能得到
<p>
</BR>
<Br>
</P>
<br>

#6


恩看来需要另外一个数组来算出html符号的位置

#7


Regex.Split

#8


System.Text.RegularExpressions.Regex.Split("", " <(.|\n)+?> "); 

#1


        string[] strs = Regex.Split(strTemp, "<[^>]*>");
//结果上有空字符串

#2


我只想提取<p>,<br>的,这个提取所有的<>

#3


正则改为 "(?i)</?(p|br)>"

#4


(?i)</?( ?:p|br)>

#5


引用 4 楼 sprc_lcl 的回复:
(?i)</?(?:p|br)>


只能得到
<p>
</BR>
<Br>
</P>
<br>

#6


恩看来需要另外一个数组来算出html符号的位置

#7


Regex.Split

#8


System.Text.RegularExpressions.Regex.Split("", " <(.|\n)+?> ");