Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在HTML标记之间剥离字符_C#_.net_Regex - Fatal编程技术网

C# 如何在HTML标记之间剥离字符

C# 如何在HTML标记之间剥离字符,c#,.net,regex,C#,.net,Regex,我有以下HTML: <h1>Text Text</h1> <h2>Text Text</h2> Text 我仍在尝试获得正则表达式的句柄,并尝试创建一个可以消除标记之间间距的句柄 我希望最终结果是: <h1>Text Text</h1><h2>Text Text</h2> Text 任何帮助都将不胜感激 更新 我想去掉所有空白、制表符和新行。因此,如果我有: <div>

我有以下HTML:

<h1>Text Text</h1>      <h2>Text Text</h2>
Text
我仍在尝试获得正则表达式的句柄,并尝试创建一个可以消除标记之间间距的句柄

我希望最终结果是:

<h1>Text Text</h1><h2>Text Text</h2>
Text
任何帮助都将不胜感激

更新

我想去掉所有空白、制表符和新行。因此,如果我有:

<div>    <h1>Text Text</h1>      <h2>Text Text</h2>     </div>
Text
我希望它最终成为:

<div><h1>Text Text</h1><h2>Text Text</h2></div>
Text

如果只是这种特殊情况,这里有一个合适的正则表达式来查找所有空格:

Regex regexForBreaks = new Regex(@"h1>[\s]*<h2", RegexOptions.Compiled);

Regex regexForBreaks=new Regex(@“h1>[\s]*使用Regex或字符串替换的一种替代方法是包

这里有一个粗略的猜测:

/// <summary>
///  Regular expression built for C# on: Tue, Sep 1, 2009, 03:56:27 PM
///  Using Expresso Version: 3.0.2766, http://www.ultrapico.com
///  
///  A description of the regular expression:
///  
///  <h1>
///      <h1>
///  [1]: A numbered capture group. [.+]
///      Any character, one or more repetitions
///  </h1>
///      </h1>
///  Match expression but don't capture it. [\s*]
///      Whitespace, any number of repetitions
///  <h2>
///      <h2>
///  [2]: A numbered capture group. [.+]
///      Any character, one or more repetitions
///  </h2>
///      </h2>
///  
///
/// </summary>
public static Regex regex = new Regex(
      "<h1>(.+)</h1>(?:\\s*)<h2>(.+)</h2>",
    RegexOptions.Singleline
    | RegexOptions.CultureInvariant
    | RegexOptions.Compiled
    );


// This is the replacement string
public static string regexReplace = 
      "<h1>$1</h1><h2>$2</h2>";
//
///为C#on构建的正则表达式:2009年9月1日星期二下午3:56:27
///使用Expresso版本:3.0.2766,http://www.ultrapico.com
///  
///正则表达式的说明:
///  
///  
///      
///[1]:编号的捕获组。[.+]
///任何字符,一个或多个重复
///  
///      
///匹配表达式但不捕获它。[\s*]
///空格,任意重复次数
///  
///      
///[2]:编号的捕获组。[.+]
///任何字符,一个或多个重复
///  
///      
///  
///
/// 
公共静态正则表达式Regex=新正则表达式(
“(.+)(?:\\s*)(.+)”,
RegexOptions.Singleline
|RegexOptions.CultureInvariant
|RegexOptions.Compiled
);
//这是替换字符串
公共静态字符串regexReplace=
"$1$2";

怎么样:
Regex.Replace(str,@“>\s+所有空格或仅空格和制表符?如果保留换行符,是否仍要删除空格和制表符?对于所有标记名,特别是h1和h2?很好!我只想删除空格、新行和制表符。不确定我是否理解最后一点。删除h1和h2,您就得到了一般情况,还有什么其他问题你感觉到了吗?很好!我只是想消除空白、新行和制表符。@AnthonyWJones:你不能这么做。想象一下这个例子:“foo bar baz”。此处的空白是故意的,删除它将改变其含义。遗漏元素之间包含合法方括号字符的情况:
附录:我的意思是“遗漏”太多。它将删除
和`即使不应该.is'>之间的空格即使是有效的HTML?您不需要在元素的文本中使用带角括号的引用()吗?右括号有效,右括号无效。