4

c#regex.replaceを使用して、空白を に置き換えています 。たとえば、次のようになります。

text: "<a href="foo"></a> &nbsp; &nbsp; Some text..."

置換後のテキストは次のようにする必要があります。

"<a href="foo"></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Some text..."

を使用してみまし(?=(a>))(\s)*(?=[A-Za-z0-9&])たが、うまくいきません。

編集:そのテンプレートはテキスト内で複数回使用できますが、常に新しい段落から始めてください。

4

2 に答える 2

0

仮定して:

  • テキストの後に他の終了タグがない
  • &nbsp;終了タグの後、テキストの前にのみあります
  • テキストは文字または数字で始まります

コードがあります:

        var input = "<a href=\"foo\"></a> &nbsp; &nbsp; Some text...";
        int startIndex = input.LastIndexOf(">") + 1;

        int endIndex = startIndex;
        while (true)
        {
            if(char.IsLetterOrDigit(input[endIndex]))
                break;
            if (input[endIndex] == '&')
                endIndex += 5;
            else
                endIndex++;
        }

        var sb = new StringBuilder();
        sb.Append(input.Substring(0, startIndex));
        sb.Append(input.Substring(startIndex, endIndex - startIndex).Replace(" ", "&nbsp;"));
        sb.Append(input.Substring(endIndex));
于 2013-11-12T15:33:36.487 に答える