Как разделить символы между тегами HTML - PullRequest
0 голосов
/ 01 сентября 2009

У меня есть следующий HTML:

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

Я все еще пытаюсь получить указатель на регулярные выражения и пытаюсь создать такой, который бы устранял расстояние между тегами.

Я бы хотел, чтобы конечный результат был:

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

Любая помощь будет принята с благодарностью!

UPDATE

Я бы хотел убрать все пробелы, табуляции и новые строки. Так что если у меня есть:

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

Мне бы хотелось, чтобы это было:

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

Ответы [ 3 ]

1 голос
/ 01 сентября 2009

Если это именно тот конкретный случай, вот подходящее регулярное выражение, чтобы найти все пробелы:

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

Тем не менее, я думаю, что регулярное выражение - неправильный подход, если это более общий случай. Например, теги могут быть вложены в другие теги, и тогда вашей проблеме потребуется немного больше деталей, чтобы найти правильный ответ. Как сказал Джейми Завински: «Некоторые люди, сталкиваясь с проблемой, думают:« Я знаю, я буду использовать регулярные выражения ». Теперь у них две проблемы. "

0 голосов
/ 01 сентября 2009

Как насчет: Regex.Replace(str, @">\s+<","><")

0 голосов
/ 01 сентября 2009

Одной из альтернатив использования регулярных выражений или заменой строк является Html Agility pack.

Вот приблизительное предположение:

/// <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>";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...