正则小问题

liaoyukun111 2010-08-31 11:49:43
FCKeditor 的取值的问题.

它的值一般都是带有样式的如:<p>this is tes</p> 或是<span>this is test</span>等等各种样式的.
现在我只想取出此纯文本内容的前10个字 怎么做

这是正则可以处理的问题吗 主要是因为上传的内容是不定,所以有可能是这样的<p><><><><><>test</></></></>

若不是正则的问题 怎样的才能取到想要的值
...全文
75 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
边城的刀声 2010-08-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 liaoyukun111 的回复:]

引用 2 楼 bclz_vs 的回复:
为什么不用xml解析再读取呢?

具体怎么搞
[/Quote]
不行,搞不了,加载这样的 xml.LoadXml("<p><><><><><>test</></></></>");会报错...
边城的刀声 2010-08-31
  • 打赏
  • 举报
回复
更改一下
<[^>]+>(<>)*(?<value>\w{1,10})</[^>]*
测试:
<p>123</p>
<p><><><><><>test</></></></>
<span>456</span>

边城的刀声 2010-08-31
  • 打赏
  • 举报
回复
<[^>]>(<>)*(?<value>\w{1,10})</[^>]*

<p>123</p>
<p><><><><><>test</></></></>

结果:
123
test
-过客- 2010-08-31
  • 打赏
  • 举报
回复
try...

Regex reg = new Regex(@"<[^>]*>");
string result = reg.Replace(yourStr, "");
richTextBox2.Text = result;
边城的刀声 2010-08-31
  • 打赏
  • 举报
回复
<[^>]+>(\w{1,10})</[^>]+

<p><><><><><>test</></></></>这样的情况,你想取什么呢?
Peter200694013 2010-08-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 liaoyukun111 的回复:]
引用 3 楼 peter200694013 的回复:
C# code

string str = @"<span>this is test</span>";

Regex reg = new Regex(@"(?<=<span>)[^<>]*(?=</span>)");

foreach (Match m in reg.Matches(str))
……

有时候内容里面没有sp……
[/Quote]
规律是什么?
除了<span>和<p> 还有其他的么?
Peter200694013 2010-08-31
  • 打赏
  • 举报
回复

string str = @"<p><><><><><>test</></></></p>";

Regex reg = new Regex(@"((?<=<span>[<>]*)[^<>]*(?=[<>/]*</span>))|((?<=<p>[<>]*)[^<>]*(?=[<>/]*</p>))");

foreach (Match m in reg.Matches(str))
Console.WriteLine(m.Value);


输出: test
liaoyukun111 2010-08-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 peter200694013 的回复:]
C# code

string str = @"<span>this is test</span>";

Regex reg = new Regex(@"(?<=<span>)[^<>]*(?=</span>)");

foreach (Match m in reg.Matches(str))
……
[/Quote]
有时候内容里面没有span 怎么搞
liaoyukun111 2010-08-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bclz_vs 的回复:]
为什么不用xml解析再读取呢?
[/Quote]
具体怎么搞
Peter200694013 2010-08-31
  • 打赏
  • 举报
回复

string str = @"<span>this is test</span>";

Regex reg = new Regex(@"(?<=<span>)[^<>]*(?=</span>)");

foreach (Match m in reg.Matches(str))
Console.WriteLine(m.Value);
边城的刀声 2010-08-31
  • 打赏
  • 举报
回复
为什么不用xml解析再读取呢?
zhxilo 2010-08-31
  • 打赏
  • 举报
回复
jianshao810 2010-08-31
  • 打赏
  • 举报
回复
<([^<>]+)[^>]*>[^<>]*</\1>
上面这个正则可以匹配
<p>this is tes</p>
<span>this is test</span>


如果不是html标签的话
<p><><><><><>test</></></></>
这些应该会转义了

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧