雅努什,这些简单的正则表达式会做你想要什么
对于第一个:搜索
(?is)<nav class="filters">[^<]*</nav>
对于第二之一:搜索
(?is)<!-- Google Tag Manager -->[^<]*<!-- End Google Tag Manager -->
实施例:
using System;
using System.Text.RegularExpressions;
class Program {
static void Main() {
string resultString = null;
string s1 = @"string was here>>> <nav class=""filters"">
STRING CONTENT
</nav> <<< string was here";
string s2 = Regex.Replace(s1, "(?is)<nav class=\"filters\">[^<]*</nav>", "");
Console.WriteLine(s2);
Console.WriteLine("\nPress Any Key to Exit.");
Console.ReadKey();
} // END Main
} // END Program
输出:
string was here>>> <<< string was here
[^<]*
会吃掉任何不是<
的字符,包括换行符,这是您的问题。
有了您的.*
点星级语法,你也可以吃换行,但只能通过设置(?s)
“点相匹配换行”标志。但总的来说,只要点星可以通过避免一些更具体的,我们这样做的[^<]*
因此选择请注意,在""filters""
双双引号什么都没有做的正则表达式。你可能知道这一点,但两个双引号是你如何在逐字字符串中避免双引号。
什么不工作? –
呃...我的正则表达式来找到我需要的东西 – pee2pee
你想捕捉什么?并用什么取代? – sshashank124