2009-09-22 65 views
0

我的输入字符串是:正则表达式解析HTML

"<!--<clientHtml>--><br><br><br><b>Job Title:</b> Test text 
<br><b>JobId:</b> 56565-116503 
<br><br><b>City:</b> San Diego 
<br><b>State:</b> CA 
<br><b>Zip Code:</b> 92108 
<br><br><br><b>Description:</b> 
      We are recruiting for a Controller to oversee all accounting and finance for a growing manufacturing company. We are looking for someone who is hands on full cycle accounting. 


<br><br> 
<!--<apply>test/apply><email></email><OriginalFetchUrl>http:test.xml</OriginalFetchUrl><OriginalWrapUrl>http://test.html</OriginalWrapUrl></clientHtml>-->"; 

我需要使用C#/正则表达式提取以下字符串:

1.“我们正在招聘控制器来监督所有会计和财务对于一家成长中的制造公司而言,我们正在寻找一名掌握全面循环会计的人。“

我也想摆脱线: 测试/应用> < /email>http:test.xml < /OriginalFetchUrl>http://test.html </OriginalWrapUrl> </clientHtml> - >

我可以帮助您获取代码吗?

感谢您的阅读。

+0

我知道,这不是家庭作业 - 但这个正则表达式的问题非常相似......你有没有尝试过吗?你看过这里关于SO的第100个正则表达式问题吗?你有关于正则表达式的任何信息吗?当你得到答案时,你是否必须再次提问或学习什么? – tanascius

+0

@tanascius - 你不是非常乐于助人或友善。你希望完成什么? –

+0

嗯,我不知道,也许我想看一些代码或他尝试过的东西?这不是反对埃德或他的问题......但更多的关于正则表达式问题总的来说......他们总是这样:我有这个,给我的代码产生的......也许我应该从我最喜欢的标签中删除正则表达式。 – tanascius

回答

2

尝试是这样的:

Description:</b>([^<]+)

这里是如何的例子使用它:

using System; 
using System.Text.RegularExpressions; 

class Example 
{ 
    static void Main() 
    { 
     String str = @"<!--<clientHtml>--><br><br><br><b>Job Title:</b> Test text 
      <br><b>JobId:</b> 56565-116503 
      <br><br><b>City:</b> San Diego 
      <br><b>State:</b> CA 
      <br><b>Zip Code:</b> 92108 
      <br><br><br><b>Description:</b> 
        We are recruiting for a Controller to oversee all accounting and finance for a growing manufacturing company. We are looking for someone who is hands on full cycle accounting. 


      <br><br> 
      <!--<apply>test/apply><email></email><OriginalFetchUrl>http:test.xml</OriginalFetchUrl><OriginalWrapUrl>http://test.html</OriginalWrapUrl></clientHtml>-->"; 

     Regex expression = new Regex(@"Description:</b>([^<]+)", 
      RegexOptions.Compiled | 
      RegexOptions.CultureInvariant | 
      RegexOptions.IgnoreCase); 

     Match match = expression.Match(str); 

     if (match.Success) 
      Console.WriteLine(match.Groups[1].Value.Trim()); 
    } 
} 
+0

谢谢。如何使用正则表达式实现以下功能: 输入:开始结束 输出结果为:开始结束 –

0

尝试是这样的:(我没有测试它。)

string result = ""; 
Match m = Regex.Match(line, @"^\<b\>\s*Description\s*\:\s*\<\/b\>\s*(?<result>.*?)\s*\<", RegexOptions.IgnoreCase); 
if (m.Success) 
{ 
    result = m.Groups["result"].Value; 
}