【问题标题】:How can I create a RegEx for Strings with Tabulator?如何使用制表符为字符串创建正则表达式?
【发布时间】:2017-06-04 21:16:15
【问题描述】:

我有一个这样的输入字符串/文本:

    <span id="salutation">


            Mister




</span><div class="c"></div>

我可以通过哪种模式获得字符串 Mister?

这种模式:

string pattern = "<span id=\"salutation\"> (.*) </span>";

对我来说没有成功。

【问题讨论】:

  • 这可能取决于你的语言,但或多或​​少的模式是&lt;span id=\"salutation\"&gt;\s*(.*?)\s*&lt;/span&gt;
  • 非常感谢!我正在使用 C#.NET。但是如果我使用这种模式,编译器会说:not expected escapesequence
  • 您确实必须正确地转义它。使用"&lt;span id=\"salutation\"&gt;\\s*(.*?)\\s*&lt;/span&gt;"@"&lt;span id=""salutation""&gt;\s*(.*?)\s*&lt;/span&gt;"
  • 非常感谢老兄!
  • @mickmackusa 在发布完整答案之前,我一直在等待积极的回应。

标签: html .net regex string text


【解决方案1】:

正确的正则表达式是:

<span id="salutation">\s*(.*?)\s*</span>

省略了“先生”周围的所有空格(\s)。

但是,就像在其他语言中一样,由于斜线,您必须双重转义:

"<span id=\"salutation\">\\s*(.*?)\\s*</span>"

在 C# 中你甚至可以使用这个技巧:

@"<span id=""salutation"">\s*(.*?)\s*</span>"

无论如何,正则表达式并不是最好的工具。尝试使用 HTML 解析器(请参阅What is the best way to parse html in C#? [closed])。

【讨论】:

    猜你喜欢
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    • 2011-10-27
    • 1970-01-01
    • 2017-06-15
    • 2016-01-13
    相关资源
    最近更新 更多