【问题标题】:MultiLine Regex search in VisualStudio?Visual Studio 中的多行正则表达式搜索?
【发布时间】:2014-12-16 18:03:23
【问题描述】:

我需要将网页中的所有文本文字插入数据库。

看着

<article>
  <h2 class="f5_Heading">
     Marketing
  </h2>
</article>

我需要找到“营销”

所以我在 Visual Studio 搜索中进行了这个正则表达式搜索:

\&gt;[^\&lt;]#\&lt;

但它没有找到它。但是它确实找到了这个:

注意:有 no 换行符。

问题:

我不明白为什么它在第一个 Regex 中找不到它:

[^\&lt;]# 表示:任何东西,它不是结束标记字符。

如何增强我的正则表达式以匹配多行?

【问题讨论】:

  • 你的正则表达式中的#是什么意思?
  • @AvinashRaj #=lazy +? 用于 Visual Studio,其中 @ 是惰性的 *?
  • 试试(?&lt;=\&gt;)[^\&lt;]#(?=\&lt;)(?&lt;=\&gt;)[^\&lt;]*(?=\&lt;)
  • @AvinashRaj 阅读此处了解更多信息aaronlerch.com/blog/2007/03/28/…
  • @AvinashRaj VS2013 实际上允许您在搜索中使用成熟的 .NET 正则表达式,但不幸的是 VS2010 有自己的语法。哦,还有 IIRC,即使在 VS2013 中,\n 也不包含在 \s 中,原因很奇怪。

标签: regex visual-studio-2010 visual-studio


【解决方案1】:

您可以使用以下正则表达式

(?<=>)\n?\s*\w+

上面将匹配“营销”以及它前面的空格。在 C# 中,你会想要类似的东西

(?m)(?<=>)\n?\s*\w+

DEMO

【讨论】:

  • 我在这里谈论的是 Visual Studio 搜索。没有“返回组”的东西,或者“这里是比赛”。你在图中哪里看到了一个返回的组的东西?
  • @RoyiNamir 我知道。我的正则表达式只会匹配 Marketing,包括它前面的空格。
  • @RoyiNamir 检查演示。
  • @RoyiNamir :b 是什么?你为什么要逃避&gt;
  • 因为这个i.imgur.com/woTznrA.png(正如人们已经说过的,VS 正则表达式是不同的......)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-30
  • 2011-04-20
  • 2011-02-21
  • 1970-01-01
  • 2017-09-20
相关资源
最近更新 更多