string Pattern = "<\\/*[^<>]*>";

feifeiyaqi3 2010-06-13 11:14:01
public static string LostHTML(string Str)
{
string Re_Str = "";
if (Str != null)
{
if (Str != string.Empty)
{
string Pattern = "<\\/*[^<>]*>";
Re_Str = Regex.Replace(Str, Pattern, "");
}
}
return (Re_Str.Replace("\\r\\n", "")).Replace("\\r", "");
}


======================================================
1.
string Pattern = "<\\/*[^<>]*>";
这个正则表达式表示什么呀

2.
Re_Str.Replace("\\r\\n", ""))

这个正则表达式中\\r表示什么??



谢谢



...全文
93 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xy325432 2010-06-18
  • 打赏
  • 举报
回复
wuyi8808 正确
fus53 2010-06-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyi8808 的回复:]
引用 1 楼 fus53 的回复:
1. string Pattern = "<\\/*[^<>]*>";
表达式是要匹配 以 <\ 开头,以 > 结尾,并且中间不出现 < 和 > 的字符串。 比如 <\>,<\?>,<\s?>等。
如果LZ是想匹配html的结尾标签,可以试试这个 </\w+?>


应该是 以 < 开头,接着0个或多个/,然后是0个或多个非<>的字符,最后以 > 结……
[/Quote]

wuyi8808 是正确的,我大意了。
不过我用的正则测试工具结果是这样:
Regex: \\/+
Source: \\//
Matches: \//
因为测试工具事先对Regex中的 \ 转义了。等效于 Regex reg = new Regex(@"\\/+");
兔子-顾问 2010-06-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fus53 的回复:]
1. string Pattern = "<\\/*[^<>]*>";
表达式是要匹配 以 <\ 开头,以 > 结尾,并且中间不出现 < 和 > 的字符串。 比如 <\>,<\?>,<\s?>等。
如果LZ是想匹配html的结尾标签,可以试试这个 </\w+?>

2.Re_Str.Replace("\\r\\n", ""))
意思是将字符串Re_Str中的 \r\n 用空格替换掉。
\\r 即 \r
\是转义符,两个\\一起就表示 \ 本身了。
[/Quote]

解释是对的。

1.嘿嘿,还是楼主的那个效率更高。你这个要每次匹配都要判断后一个字符
wuyi8808 2010-06-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fus53 的回复:]
1. string Pattern = "<\\/*[^<>]*>";
表达式是要匹配 以 <\ 开头,以 > 结尾,并且中间不出现 < 和 > 的字符串。 比如 <\>,<\?>,<\s?>等。
如果LZ是想匹配html的结尾标签,可以试试这个 </\w+?>
[/Quote]

应该是 以 < 开头,接着0个或多个/,然后是0个或多个非<>的字符,最后以 > 结尾。
正则中的 \/ 其实就是 / 本身。(/可以不用转义,写作 / 也可以)。
fus53 2010-06-13
  • 打赏
  • 举报
回复
1. string Pattern = "<\\/*[^<>]*>";
表达式是要匹配 以 <\ 开头,以 > 结尾,并且中间不出现 < 和 > 的字符串。 比如 <\>,<\?>,<\s?>等。
如果LZ是想匹配html的结尾标签,可以试试这个 </\w+?>

2.Re_Str.Replace("\\r\\n", ""))
意思是将字符串Re_Str中的 \r\n 用空格替换掉。
\\r 即 \r
\是转义符,两个\\一起就表示 \ 本身了。
wuyi8808 2010-06-13
  • 打赏
  • 举报
回复
using System;
using System.Text.RegularExpressions;

class Program
{
static void Main()
{
Console.WriteLine(new Regex("^\\/+$").IsMatch("////")); // 输出:True,匹配。
Console.WriteLine(new Regex("^\\/+$").IsMatch("\\//")); // 输出:False,不匹配。
// 由上可见,正则式 "\\/" 就是表示 '/' 这个字符本身,而不是 \ 后面跟 /。

Console.WriteLine(new Regex("\\/+").Match("////").Value); // 输出:////
Console.WriteLine(new Regex("\\/+").Match("\\//").Value); // 输出://
// 这更能说明问题:"\\/" 在C#中其实就是字符串 @"\/" ,正则把 \/ 解释为: /。
}
}

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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