2012-02-28 9 views
1

が、彼らは時々この人々は私のウェブサイト上のいくつかのテキストを掲載している場合

********************************************************************* 

のようなハイフン、アスタリスクまたはフルストップの長い行を挿入します同じ文字の多くのインスタンス(C#)を削除することを、残念ながら意志いくつかの結果ページ上のレイアウトを破壊し、それは無意味です(私にとって)。

どうすればよいですか?唯一5.もしそうなら、どのように...

Regex regex = new Regex("[\\*\\._-]{5,}"); 
string goodstring = regex.Replace(badstring, "-----"); 

しかし、ユーザーは自分の正規表現をだろうそして、aaaaaaaaaaaaaaaaaaaaaaaaaaを書くために楽しいと思った場合は何に同じ文字のXを繰り返すよりも減少しますたぶん正規表現失敗します。

質問があります。どのように私はこの問題を処理する必要があると思いますし、私は正規表現でそれを処理する必要があると思うなら、どのように任意の文字の不必要な繰り返しを削除する正規表現を書く(と* .- _私の独自の正規表現) ?以上のものを入力し、どのように私はあなたが同じ文字を検出するために、後方参照を使用することができます任意の文字

の不要な繰り返しを削除します正規表現を書くのです

:あなたの正規表現の質問に答えるために

+2

あなたの質問は何ですか? – Oded

+0

私はそれが壊れないようにあなたのデザインを再考すると思いますか? – BlueM

答えて

6

一度、例えば:どのように

Regex regex = new Regex(@"(.)\1{4,}"); 

あなたの質問の主なポイントはこれだと思われます:

残念なことに、いくつかの結果ページでレイアウトを破壊してしまいます。私はこれをどのように扱うべきですか?

テキストがそのコンテナに収まらない場合の動作を指定するには、スタイルシートを使用する必要があります。たとえば、オーバーフローしているコンテンツがページ上の他の要素と重なる可能性があるというデフォルトの動作を持たせるのではなく、overflow propertyを使用してオーバーフローで非表示またはスクロールするようにコンテンツを設定できます。

+0

これは私の問題を解決しました。投稿を印刷するとき: 'Regex regex = new Regex(@" {4、} "); p.Description = regex.Replace(p.Description、 ""); p.Description = p.Description.Replace(System.Environment.NewLine、 ""); ' – Jesper

+0

divにあるオーバーフローを使用できないため、スクロールバーがちょっと恐ろしいように見えます隠されたテキストはちょっと変わっています。しかし、正規表現のおかげで:) – Jesper

2

これを処理する方法は、あなた/あなたのクライアントには多少なりともありますが...私たちは助言することはできますが、これについては答えることはできません...ユーザーが望むものを印刷してチョップ/それはあなたのレイアウトを破壊することはできません - もしあなたが1文字の倍数を除外するなら(誰かがそこに入れたあなたのレイアウトを破壊する)彼/彼女は次の時に "abababababababa"

+0

それは本当です。sldjflsdjflsdkjldkjlfsjfkldfkjのようなものは、このタイプの正規表現を使っているので、単語の長さもチェックしなければならないと思います。 – Jesper

+0

あなたはいつもスペースを振りかけるか、大きなテキストをコピーするだけです。あなたのレイアウトは、私が言ったようにそれらの大きな言葉/テキストを扱うことができます - ただそれらを切り抜く – Carsten

関連する問題