Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / ASP.NET / General / July 2005

Tip: Looking for answers? Try searching our database.

Regex -- Replace "-*?\n" with ""

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Brent - 22 Jul 2005 20:27 GMT
Take this string:

"----------------------------------------
"

(i.e., hyphens followed by a newline )

I thought I could match it simply with this Regex:

    "-*?\n"
   
    (my interpretation: one or more of "-" followed by a newline)

But when I run it, it seems to match all newlines, regardless of being
preceded by the "-". I know I'm missing something. Any ideas of how to
do this match properly?

Many thanks.

--Brent
Tom.PesterDELETETHISSS@pandora.be - 22 Jul 2005 21:10 GMT
Hi Brent,

Starting a newline is \r\n on dos/windows systems.

So if you use
"-*?\r\n"
on
"----------------------------------------
"
"----------------------------------------
"

It will match 2 times.

A caution is maybe in order here. If you use a lazy non greedy quantifier
it will match the shortest string possible.

So if you let the regex
-*?
Loose on 5 times a dash
-----
The result will be 6 *empty* matches : m-m-m-m-m-m

Whe empty? bacause the star in your regex allows 0 occurences. So the shortest
string possible is the empty string.

Compare this with the regex
-*?a
on
-----a

Now you want an a to be at the end of a match so the shortest string possible
is now : -----a
This is the whole original input string and this is the only match.

You say you want a windows newline so your doing fine.

Let me know if you have any more questions..

Cheers,
Tom Pester

> Take this string:
>
[quoted text clipped - 15 lines]
>
> --Brent
Brent - 23 Jul 2005 00:11 GMT
Thanks Tom!

I hacked around some more with this stuff, and it turns out that
".*?--+\n" works. Some of the "----" strings were preceded by spaces, so
this seems to be a better, uh, match.

And, yes, your reply does help.

Oh...the text is being sucked in over HTTP directly from an Apache
server, so the \n seems to be appropriate.

Tricky things, these regexes!

--Brent

> Hi Brent,
>
[quoted text clipped - 36 lines]
> Cheers,
> Tom Pester
Bruce Barker - 23 Jul 2005 01:27 GMT
actually http 1.1 switched to "\r\n", so the apache server should serve the
html the samer way.

-- bruce (sqlwork.com)

> Thanks Tom!
>
[quoted text clipped - 51 lines]
>> Cheers,
>> Tom Pester
jasonkester - 23 Jul 2005 17:04 GMT
Try:

-+\r\n

Not sure what you were trying to accomplish with your *?
(literally:zero or more, possibly.)  That would always match any new
line, assuming you used \r or \r\n as your newline character.

Jason Kester
Expat Software Consulting Services
http://www.expatsoftware.com/

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.