Skip to main content
 首页 » 编程设计

c#之请帮忙修改这个正则表达式

2024年02月20日37zengkefu

<分区>

Possible Duplicate:
RegEx match open tags except XHTML self-contained tags

我正在尝试搜索以下 HTML 字符串以获取这些产品的成本:

<div id=menu> 
  <p>A hamburger without cheese costs $5.</p> 
  <p>A cheeseburger with one patty costs $6.</p> 
</div> 

我能够使用以下表达式成功获取每件商品的价格:

string hamburger = "<p>A hamburger[^\\$]+\\$(?<price>.*?).</p>"; 
string cheeseburger = "<p>A cheeseburger[^\\$]+\\$(?<price>.*?).</p>" 
 
    public string GetProductPrice(string expression) 
    { 
        expression = Regex.Unescape(expression); 
        Regex regex = new Regex(expression); 
        MatchCollection mc = regex.Matches(MENU_DIV_STRING); 
 
        if (mc.Count > 0 && mc[0].Groups.Count == 2) 
            return mc[0].Groups[1].ToString(); 
        else 
            return "--"; 
    } 

但是,给出这个时我陷入了一个循环:

<div id=menu> 
  <p>A hamburger without cheese costs $5.</p> 
  <p>A cheeseburger with one patty costs $6.</p> 
  <p>A cheeseburger (SPECIAL: add an additional patty for $1 each) costs $6.</p> 
</div> 

第二个美元符号出现在“花 1 美元加第二个馅饼”中,让我陷入了一个完整的循环。我已经研究并尝试了很多东西,比如使用模式,但在这一点上我完全弄糊涂了。

是否有一个正则表达式可以找出一个芝士汉堡的价格是多少,是否有特价?