C#.NET用正则表达式提取<span style="font-size: 14.0pt;font-family: 宋体;">泥料:原矿清水泥</span>中值
作者&投稿:殷勤陶 (若有异议请与网页底部的电邮联系)
style\=\"[^\"]*\"
或者\\
正则表达式是验证一个字符串是否拥有某种特定的样式 (Pattern),比如电子邮件地址,都会有@,@后面都是xx.xxx或xx.xxx.xxx之类,使用正则表达式可以灵活又精确地描述这种pattern。比如对电子邮件地址,可以描述成:^([\w-]+\.)*?[\w-]+@[\w-]+\.([\w-]+\.)*?[\w]+$,等等。
它不是用来抽取字符串的,虽然验证样式往往是替换或抽取字符串的前一步。
如果你一定要使用正则表达式,无非就是用
<span style="font-size:\s14\.0pt;font-family:宋体;">(.*?)</span>找到这个tag,然后再用字符串处理剥出中间的文字。
如果style里面的内容不是固定的,可以这样查找任意样式的<span>标记
<\s*span[^>]*>(.*?)<\s*/\s*span>
另外,注意汉字需要用4位 unicode 16进制代码替换,格式如:\u0020。
出现乱码了,不知道你是什么意思,如果你是想从html文本中提取出纯文本的话,给你个方法你调用一下:
public string NoHTML(string Htmlstring)
{
//删除脚本
Htmlstring = Htmlstring.Replace("\r\n", "");
Htmlstring = Regex.Replace(Htmlstring, @"<script.*?</script>", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"<style.*?</style>", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"<.*?>", "", RegexOptions.IgnoreCase);
//删除HTML
Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "\"", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "\xa1", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "\xa2", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "\xa3", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "\xa9", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"(\d+);", "", RegexOptions.IgnoreCase);
Htmlstring = Htmlstring.Replace("<", "");
Htmlstring = Htmlstring.Replace(">", "");
Htmlstring = Htmlstring.Replace("\r\n", "");
//Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();
return Htmlstring;
}
提取'/span>' ? 那正则就直接是/pan>就好了 . 用的时候直接 Regex.Match(字符串, 正则表达式).Groups[0].Value 就可以提取了
佟炊派同: 设textBox1.text="为你的文本"; string regexStr = @"<center>([^<]*)</center>"; Match mc = Regex.Match(textBox1.Text.Replace("\n", ""), regexStr, RegexOptions.IgnoreCase); MessageBox.Show("结果为:" + mc.Groups[1].Value);
下花园区15082169976: C#使用正则表达式获取字符串里的一些字符?
佟炊派同: 首先你要针对你的目标内容写一个正则表达式,比如这里可以用:\[(\d{2}:\d{2}:\d{2})\](.*) 然后是用代码将匹配的内容提取出来,假设这里用两个变量:timeStamp还有mainContent string timeStamp = string.Empty; string mainContent = ...
下花园区15082169976: 最近想用C#做个小程序,然后涉及到利用正则表达式提取网页中的数据,不知道如何读取,内容如图: - ?
佟炊派同: // str = html page List<string> list = new List<string>(); Regex re = new Regex(@“>\w*<"); MatchCollection matches = re.Matches(str); System.Collections.IEnumerator enu = matches.GetEnumerator(); while (enu.MoveNext() && enu.Current != null)...
下花园区15082169976: c# 通过正则表达式拿到部分字符串 - ?
佟炊派同: var reg=/from\s+(\w+)\s+where\s+(\w+)/g; var str="select * from fjksjfsfkls where fskljfakfjsklj"; reg.test(str); var a=RegExp["$1"];获得之间的字符串 var b=RegExp["$2"];获得后面的字符串 这是脚本的算法
下花园区15082169976: C#当中如何使用正则表达式获取某一标签的所有属性 属性数量不确定?
佟炊派同: 如果你用LINQ-TO-XML非常方便:比如假设存在一个MyLabel的标签,里边有若干属性…… string s = "<MyLabel name='MyLabel' Text='MyText' attr1='1'/>"; var result = from e in XDocument.Parse(s).Element("MyLabel").Attributes() select e; foreach (var item in result) { Console.WriteLine(item.Name+"<===>"+item.Value); }
下花园区15082169976: c#正则表达式提取string里面的数字 - ?
佟炊派同: 给你一个方法吧,你只要直接调用这个方法就可以了 /// <summary> /// 获取两个字符串之间的字符 /// </summary> /// <returns></returns> public static string GetValueAnd(string strStart, string strEnd, string text) { if (string.IsNullOrEmpty(text)) return ...
下花园区15082169976: C#如何使用正则表达式提取超链接中的文字部分?就是<a>文字部分</a>中间的文字. - ?
佟炊派同: string html = 要匹配的字符串; Regex reg = new Regex(@"<a\s*[^>]*>([\s\S]+?)</a>", RegexOptions.IgnoreCase); Match m = reg.Match(html); while(m.IsSuccess){ string innerHTML = m.Result("$1");// 得到正则的括号里的内容,就是a的...
下花园区15082169976: C# 后台用正则表达式提取字符串中最后一组数字 - ?
佟炊派同: static void Main(string[] args) { string s = "测试名称号号55楼"; Regex r = new Regex("\\d+"); var ms = r.Matches(s); if (ms.Count > 0) Console.WriteLine(ms.OfType().Last()); else Console.WriteLine("没找到"); Console.ReadLine(); }
下花园区15082169976: c#使用正则表达式提取内容 - ?
佟炊派同: string srcString = " identifier {9dea862c-5cdd-4e70-acc1-f32b344d4795} device partition=C:description Windows Boot Manager locale zh-HK inherit {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e} integrityservices Enable default {ae321ed2-5be2-...
下花园区15082169976: c#用正则表达式提取小括号中的内容 - ?
佟炊派同: 给表达式加一个别名如下所示,就可以很简单的取到你想要的字符串了.123 Regex rex = newRegex("(?<MYSTR>(.*))"); String str = rex.Match("aaaa(bbbbbb)jlkoihj").Groups["MYSTR"].ToString();// 结果 (bbbbbb) 如不清楚可以Hi...