直接上代码和如何使用
/// <summary> /// 截取字符串中开始和结束字符串中间的字符串 /// </summary> /// <param
name="source">源字符串</param> /// <param name="startStr">开始字符串</param> /// <param
name="endStr">结束字符串</param> /// <returns>中间字符串</returns> public string
SubstringSingle(string source, string startStr, string endStr) { Regex rg = new
Regex("(?<=(" + startStr + "))[.\\s\\S]*?(?=(" + endStr + "))",
RegexOptions.Multiline | RegexOptions.Singleline); return
rg.Match(source).Value; } /// <summary> /// (批量)截取字符串中开始和结束字符串中间的字符串 ///
</summary> /// <param name="source">源字符串</param> /// <param
name="startStr">开始字符串</param> /// <param name="endStr">结束字符串</param> ///
<returns>中间字符串</returns> public List<string> SubstringMultiple(string source,
string startStr, string endStr) { Regex rg = new Regex("(?<=(" + startStr +
"))[.\\s\\S]*?(?=(" + endStr + "))", RegexOptions.Multiline |
RegexOptions.Singleline); MatchCollection matches = rg.Matches(source);
List<string> resList=new List<string>(); foreach (Match item in matches)
resList.Add(item.Value); return resList; }
 

用法如下:
string html="这里 Html 文本内容省略"; var text1 = regex.SubstringSingle(html, "<div
id=\"pagelet_timeline_main_column\">", "<div id=\"pagelet_sidebar\""); var
text2 = regex.SubstringMultiple(html, "<div class=\"_4-u2 _4-u8\">", "<div
class=\"_1dnh\">");
具体去自己体会吧,个人觉得很实用,这里是写成了扩展方法来调用的。

 
/// <summary> /// 去除转义字符 /// </summary> /// <param name="str"></param> ///
<returns></returns> public static string RemoveEscapeChar(this string str,int
re=0) { if (string.IsNullOrWhiteSpace(str)) return ""; if (re == 1) //不替换特殊字符
return str; if (re == 2) //不移除空格 return str.Replace("\n", "").Replace("\t",
"").Replace("\r", ""); return str.Replace("\n", "").Replace("\t",
"").Replace("\r", "").Replace(" ", "").Trim(); }
上面是去除页面中转义字符,换行符的一个扩展方法,去除后再配合正则来进行筛选很实用,我个人主要用在对请求得到的html 指定内容进行提取。

 

2020年1月15号补充:

在使用的过程中难免会遇到一些正则表达式的特殊符号例如下面这个文本

oL[289]( x[/42.934715] y[/31.199666] z[/-0.929894] u[/-0.20919151978424]
v[/-0.04218084669353] w[/0.97696452557019] )

我们要提取出  [ ]  中的内容,那么在写的时候就要加上转义了,如下代码我分别提取文本中的x,y,z,u,v,w中的值 使用 \\ 进行特殊符号转义
string temp_x = SubstringSingle(str, "x\\[/", "\\]"); string temp_y =
SubstringSingle(str, "y\\[/", "\\]"); string temp_z = SubstringSingle(str,
"z\\[/", "\\]"); string temp_u = SubstringSingle(str, "u\\[/", "\\]"); string
temp_v = SubstringSingle(str, "v\\[/", "\\]"); string temp_w =
SubstringSingle(str, "w\\[/", "\\]");
这些就是需要注意的地方了,所以当你在提取时候如果有正则中特殊字符记得转义哈,不然会匹配不到的哦!

技术
©2019-2020 Toolsou All rights reserved,
[数据结构]八大排序算法(C语言)总结G1垃圾收集器面试题Android中使用微信H5支付时支付结果刷新问题32-jdbc工具类大学里要参加竞赛吗?都有哪些竞赛可以参加?震惊!!C++居然可以发出声音!C语言之链表入门(超详解)Java实现一个疫情人数管理系统如何用python实现斐波那契数列的前100个MyBatis循环Map(高级用法)