2010-12-13 13 views
4

\ R \を使用して、単一
に複数
を交換n及びIはは複数が含まれているC#またはjqueryの

Regex.Replace(sampleText, @"[\r\n]{2,}", "<br />"); 

を使用した場合には、複数の\ nのための複数の<br>とにそれを変更します。私はREGXされた後、単一の<br />

テキストでこれらの複数の<br>を交換する必要があり :

Addendum 5 changes the following:<div><br></div>div<br>div&gt;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Addenda 5 - Landscape 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br>&nbsp; 
<br>Item 
<br>Description 
<br>Qty 
<br>Unit 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br>Add 
<br>Pavestone Hollandstone Pavers<span style="">&nbsp;<br>span&gt; 
<br>Colo<br>to<br>e dark<br>own.<span style="">&nbsp;<br>span&gt;Base material not specified. Pavers to<br>e 
<br>ADA compliant. 
<br>478 
<br>SF 
<br> 
<br> 
<br> 
<br>Area w<br>Calgary 
<br>Carpet Junipe<br>is clouded on sheet L5.1. Unable to determine what changed in 
<br>that area. 
<br> 
<br> 
<br> 
<br>Deduct 
<br>Prunus laurocerasus 'Otto Luykens', 5 gal 
<br>Otto Luykens Laurel 
<br>-1 
<br>EA 
<br> 
<br> 
<br> 
<br>Deduct 
<br>Miscanthus sinensis<span style="">&nbsp; 
<br>span&gt;'Morning Light', 5 gal 
<br>Morning Light Miscanthus 
<br>-3 
<br>EA 
<br> 
<br> 
<br> 
<br>Add 
<br>Rose 'Knockout', 5 gal 
<br>Rose Knockout 
<br>11 
<br>EA 
<br> 
<br> 
<br> 
<br>Deduct 
<br>Turf-N Tee Mulch<span style="">&nbsp;<br>span&gt; 
<br>Install 1 1/2" depth mulch 
<br>@ 42 sf.<span style="">&nbsp;<br>span&gt;50% fo<br>each mulch type 
<br>-0.1 
<br>CY 
<br> 
<br> 
<br> 
<br>Deduct 
<br>Wood Shavings Mulch 
<br>Install 1 1/2" depth mulch 
<br>@ 42 sf.<span style="">&nbsp;<br>span&gt;50% fo<br>each mulch type 
<br>-0.1 
<br>CY 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br>Deduct 
<br>12-8-8 Gro-Power 
<br>Mix into planting areas at 75 
<br>lbs/1000 sf @ 42 sf pe<br>spec 329500-3.6. 
<br>-3 
<br>LBS 
<br> 
<br> 
<br> 
<br>Deduct 
<br>5-3-1 Gro-Powe<br>Plus 
<br>Mix into planting areas at 150 
<br>lbs/1000 sf @ 42 sf pe<br>spec 329500-3.6. 
<br>-6 
<br>LBS 
<br> 
<br> 
<br> 
<br>Deduct 
<br>Flou<br>of Sulfur 
<br>Mix into planting areas at 20 
<br>lbs/1000 sf @ 42 sf pe<br>spec 329500-3.6. 
<br>-1 
<br>LBS 
<br> 
<br> 
<br> 
<br>Deduct 
<br>Gro-Safe Activated Charcoal 
<br>Mix into planting areas at 200 
<br>lbs/1000 sf @ 42 sf pe<br>spec 329500-3.6. 
<br>-8 
<br>LBS 
<br> 
<br> 
<br> 
<br>Deduct 
<br>Plant Backfill: Compost 
<br>Apply 20% compost mix and 80% 
<br>native soil pe<br>detail B/L5.6. 
<br>-1 
<br>LS 
<br> 
<br> 
<br> 
<br>Deduct 
<br>Plant Backfill: Nitrogenized 
<br>Stabilized Organic Amendment 
<br>Fo<br>all container-sized plants, 
<br>ackfill shall<br>e a uniform mixture of the following ingredients<br>y volume): 
<br>6 parts<br>y volume on-site soil, 4 parts<br>y volume nitrogen stabilized organic 
<br>amendment, Grow powe<br>pe<br>manufacturers'<br>ecommendation, 2 lbs. iron sulfate 
<br>pe<br>cubic yard of mix pe<br>spec 329500-3.6. 
<br>-1 
<br>LS 
<br> 
<br> 
<br> 
<br>Deduct 
<br>Plant Backfill: 5-3-1 Gro-Power 
<br>Plant Backfill: 7-5 gal @ 1 cup 
<br>pe<br>specs 329500-3.6.<span style="">&nbsp;<br>span&gt; 
<br>-7 
<br>Cups 
<br> 
<br> 
<br> 
<br>Deduct 
<br>Plant Backfill: Flou<br>of Sulfate 
<br>Plant 7-5 gal @ 1/2 cup per 
<br>specs 329500-3.6.<span style="">&nbsp;<br>span&gt; 
<br>-3.5 
<br>Cups 
<br> 
<br> 
<br> 
<br>Deduct 
<br>Plant Backfill: Gro-Safe 
<br>Plant Backfill:7-5 gal @ 1 cup 
<br>pe<br>specs 329500-3.6.<span style="">&nbsp;<br>span&gt; 
<br>-7 
<br>Cups 
<br> 
<br> 
<br> 
<br>Deduct 
<br>20-10-5<span style="">&nbsp;<br>span&gt;Plante<br>Tablets 
<br>- 21 gram 
<br>Apply to planting pits at:7-5 
<br>gal @ 2 tablets pe<br>specs 329500-3.6. 
<br>-14.00 
<br>EA &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<br>div<br>div<br>div&gt;</span></span></span></span></span></span></span></span></span></span> 

、 感謝を助けてください。

+0

を空白行に空白がある場合を除き、私は、あなたが今使っている正規表現はすでにこれをしないだろうない理由を見ません(しかしあなたが貼り付けたものにはありません)。ああ、私は超古い質問.....の恩恵に騙されているのを参照してください – OGHaza

+1

そのテキストは真剣に台無しです。 '
Fo
すべてのコンテナサイズの植物は、'私は '
であるべきだと思う。コンテナサイズのすべての植物には、それ以上のものがあります。 – Jerry

+0

ザルゴはポニーです... http://stackoverflow.com/a/1732454/945456 –

答えて

7

たぶん、このような何か:

Regex.Replace(sampleText, @"[(<br(/|)>|<br(/|)>\n)]{2,}", "<br />"); 

が可能\n改行で<br>または<br />を確認する必要があります。

私はそれをテストしていないとスペースが<br>改行

1

間がある場合、いくつかの問題があるかもしれませんが、あなたの<br />タグを追加するための次の式を使用してみてください:

Regex.Replace(sampleText, @"\r?\n\s*", "<br />"); 
4

次の正規表現はうまくいくはずです:

/(<br>\s*){2,}/ 

これは基本的に2つ以上連続しています<br>とオプションの空白文字は<br>のペアの間にあります。次にreplaceメソッドを使用して、一致する要素をただ1つの<br>と置き換えることができます。

デモはhttp://jsfiddle.net/DA9h4/から入手できます。それはjavascriptを使用しますが、同じ正規表現は他の言語にも適用できます。 \r\nを使用して元の質問については

var str = "Addendum 5 changes the following:<div><br></div>div<br>div&gt;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Addenda 5 - Landscape<br><br><br><br><br><br>&nbsp;<br>Item"; 

var r = new RegExp("(<br>\\s*){2,}"); 

console.log("old value: " + str); 
console.log("new value: " + str.replace(r, "<br>")); 

、以下同様の正規表現は動作します:パターンは、白の各グループを見つけます

Regex.Replace(sampleText, @"[^\S\n]*\n\s*", "<br />"); 

/(\r\n\s*){2,}/ 
2

あなたがこれを使用することができます改行を含む文字を1つの<br />に置き換えます。

[^\S\n]* # all white characters except \n, zero or more times 
\n   # a newline character 
\s*   # all white characters, zero or more times 

最初の部分は、改行が含まれておらず、最初の改行文字まで(\rを含む)他の主要ホワイト文字をトリミングするために使用されます。

最後の部分は、可能な他の改行やキャリッジリターンを含むすべての白文字に一致します。

それだけ\n

1

C#

Regex.Replace(sampleText, @"(<br ?/?>)+", "<br />"); 

jQueryの/正規古いジャバスクリプトを探しますので、あなたの文字列の改行の種類(CRLF、LF)は、このパターンとは関係ありませんのでご注意

sampleText.replace(/(<br ?\/?>)+/, "<br />"); 

これは目について

1

一つ重要なことを役に立てば幸い1行または複数行の間に空白を含む連続した一致文字列を使用する正規表現の種類は、空白文字[\r\n\t\f ]を考慮する必要があります。\sは上記の文字をすべて含んでいるため、\sと書くべきです。

((<br>\s*)\1?)+ 

ザは、この正規表現の奇数の一部であってもよく、それは最近捕捉それぞれ同じグループをチェックするバックrefrence \1の使用です。

ので、あなたの場合には、あなたが使用するつもり:これは正常に動作している live demo here

1

あなたが見ることができる

Regex.Replace(sampleText, @"((<br>\s*)\1?)+", "<br />"); 

が、一度試してみてください。

Regex.Replace(sampleText、@ "(
\ s *)\ 1+"、 "
");

0

一つだけがそう左まで、あなたは<br>余分を削除する:

do 
    { 
     yourText.Replace("<br><br>","<br>") 
    } while (yourText.Contains("<br><br>")) 
+0

これは非常に悪いです。検索基準として '(
)+'を考えてみましょう – Jan

関連する問題