2

どうすれば次のようなものを使用できますか

return Regex.Replace("/(^)?(<br\s*\/?>\s*)+$/", "", source);

このケースを置き換えるには:

<br>thestringIwant => thestringIwant
<br><br>thestringIwant => thestringIwant
<br>thestringIwant<br> => thestringIwant
<br><br>thestringIwant<br><br> => thestringIwant
thestringIwant<br><br> => thestringIwant

先頭または末尾に複数の br タグを付けることができますが、途中の br タグを削除したくありません。

4

7 に答える 7

0

正規表現の力を無視すべきではないと私は信じています。正規表現に適切な名前を付ければ、将来それを維持することは難しくありません。

正規表現を使用してタスクを実行するサンプル プログラムを作成しました。また、大文字と小文字、および先頭と末尾の空白も無視されます。他のソース文字列サンプルを試すことができます。

最も重要なことは、それがより速くなるということです。

using System;
using System.Text.RegularExpressions;

namespace ConsoleDemo
{
    class Program
    {
        static void Main(string[] args)
        {

            string result;
            var source = @"<br><br>thestringIwant<br><br> => thestringIwant<br/> same <br/> <br/>  ";
            result = RemoveStartEndBrTag(source);
            Console.WriteLine(result);
            Console.ReadKey();
        }

        private static string RemoveStartEndBrTag(string source)
        {
            const string replaceStartEndBrTag = @"(^(<br>[\s]*)+|([\s]*<br[\s]*/>)+[\s]*$)";
            return Regex.Replace(source, replaceStartEndBrTag, "", RegexOptions.IgnoreCase);
        }
    }
}
于 2013-09-10T11:52:13.893 に答える