-3

私は正規表現ではありません。ですから、誰かが私にこれを手伝ってくれるなら、私は本当に感謝します。

スペースを削除する正規表現

javascript正規表現は完全な単語のみを削除します

非英字をスペースに置き換える正規表現

行の空白を削除して特定の列を抽出する正規表現

上記のリンクは私を助けません

しかし、これは近いようです

私はこの文字列を持っています

<tr class="trClass"    >  <td class="tdClss"  > adasd   
<span class=classA  >     as  da  "sads "sd</span> </td> </tr>

上記のhtml文字列には3つのクラスがあります。

  1. 「trClass」
  2. 「tdClss」
  3. classA

クラス名の後のスペースは未定です

天気予報のクラス名は引用符で囲まれるかどうかは不明です

>記号の前のスペースを削除したい

この条件に一致する正規表現は何ですか?


私のコード

 public static string Flatten(string inputString)
    {
        // remove line breaks
        string rawInput = inputString.RemoveLineBreaks().Trim();

        string filteredInput = Regex.Match(rawInput, "<tr.+?>.*</tr>").ToString();

        if (filteredInput.IsNotNullOrEmpty())
        {
            // remove space between end and start tags
            filteredInput = Regex.Replace(filteredInput, ">.+?<", delegate(Match match)
                {
                    string v = match.ToString();
                    return ">" + v.Substring(1, v.Length - 2).Trim() + "<";
                });

            // remove space between attribute and closing tags
            filteredInput = Regex.Replace(filteredInput, "\t>", delegate(Match match)
            {
                //string v = match.ToString();
                return ">";
            });


            return filteredInput;
        }
        else
        {
            return "Invalid HTML Table Row!";
        }

    }
4

2 に答える 2

2

投稿した内容に正確に基づいて、パターン+>は指定した条件に一致します。つまり、1 つ以上のスペース ( +) の後に閉じ山括弧 ( ) が続くことを意味します>。そのパターンの代わりにRegex.Replacecall と passを使用できます。>

注意: 正規表現を使用して HTML を操作することは、危険な場合があります。文字列にエンコード>されていないものがある場合でも、上記のパターンに一致する可能性があります。上に示したものについては、大丈夫だと思います。

于 2013-03-19T14:42:08.873 に答える
1

XDocument.Parse(string)を使用してこれをXDocumentに単純にロードすると、これが処理されます。

var test = XDocument.Parse("<tr class=\"trClass\"    >  <td class=\"tdClss\"  > adasd   <span class=\"classA\"  >     as  da  \"sads \"sd</span> </td> </tr>");
Console.WriteLine(test);

正規表現を使用する必要はありません。これにより、以下が得られます。

<tr class="trClass">
    <td class="tdClss"> adasd   <span class="classA">     as  da  "sads "sd</span></td>
</tr>
于 2013-03-19T14:43:08.433 に答える