Replace multiple files with one using C # or jQuery
Which contains a few \ r \ n and when I used
Regex.Replace(sampleText, @"[\r\n]{2,}", "<br />"); he changes it to multiple <br> for multiple \ n. I need to replace these several <br> with one <br />
text after Regx:
Addendum 5 changes the following:<div><br></div>div<br>div> Addenda 5 - Landscape <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <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=""> <br>span> <br>Colo<br>to<br>e dark<br>own.<span style=""> <br>span>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=""> <br>span>'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=""> <br>span> <br>Install 1 1/2" depth mulch <br>@ 42 sf.<span style=""> <br>span>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=""> <br>span>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>ea 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=""> <br>span> <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=""> <br>span> <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=""> <br>span> <br>-7 <br>Cups <br> <br> <br> <br>Deduct <br>20-10-5<span style=""> <br>span>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 <br>div<br>div<br>div></span></span></span></span></span></span></span></span></span></span> Please help, thanks.
The following regex should work:
/(<br>\s*){2,}/ This basically matches 2 or more consecutive <br> and optional space characters between the pair <br> . Then, the replace method can be used to replace the matched element with just one <br> .
Demo is available at: http://jsfiddle.net/DA9h4/ . It uses javascript, but the same regular expression is applicable in other languages.
var str = "Addendum 5 changes the following:<div><br></div>div<br>div> Addenda 5 - Landscape<br><br><br><br><br><br> <br>Item"; var r = new RegExp("(<br>\\s*){2,}"); console.log("old value: " + str); console.log("new value: " + str.replace(r, "<br>")); As for the original question, which uses \r\n , the following similar regular expression will work:
/(\r\n\s*){2,}/ You can use this:
Regex.Replace(sampleText, @"[^\S\n]*\n\s*", "<br />"); The template will find each group of white characters containing a new line and replace it with one <br /> .
[^\S\n]* # all white characters except \n, zero or more times \n # a newline character \s* # all white characters, zero or more times The first part does not contain newlines and is used to trim other leading white characters (including \r ) to the first newline character.
The last part matches all white characters, including possible newlines or carriage returns.
Note that the newline type (CRLF, LF) of your string does not matter with this pattern, since it only searches for \n
One important thing in such regular expressions using consecutive matching lines in one line or in several lines with spaces between them is to consider any space character [\r\n\t\f ] , so we have to go to write \s for our purpose as it includes all of the characters above.
((<br>\s*)\1?)+ Maybe the odd part of this regex is to use the inverse refrence \1 , which will be checked for each group captured recently.
so in your case you are going to use:
Regex.Replace(sampleText, @"((<br>\s*)\1?)+", "<br />"); which you can see here a live demonstration