Training, Open Source computer languages
PerlPHPPythonMySQLApache / TomcatTclRubyJavaC and C++LinuxCSS 
Search for:
Home Accessibility Courses Diary The Mouth Forum Resources Site Map About Us Contact
RegEx problem - finding EOL

Posted by jonnyr9 (jonnyr9), 16 May 2003
I need to detect if array elements contain line breaks and substitute them for nothing.  I guess there is a special reference for these but can not find them.  The end aim is clean a MySQL db of EOL chars.

if(@row =~ m/(\\n)/){ print "Found EOL char in @row"; }

What if the EOL originated in an html page.

Posted by admin (Graham Ellis), 16 May 2003
I would use an s operator in a for loop on the list (as an alternative you could use a map which would be even shorter). Here's a sample program that reads a file into a list then takes all training white space off the end of each line and also the line separators, even when the line separators are embedded withing a multiline string within the @rows list.  The program replaces the new line with a single space - put what you like in there of course but I guess you don't want the lines to run toghether!

Code:
#!/usr/bin/perl

open (FH,"callcosts");
@rows = <FH>;

print "before\n",@rows[12..14],"\n";

foreach (@rows) {
       s/\s*[\n\r]+/ /g;
       }

print "after\n",@rows[12..14],"\n";


By the way - I know the test data isn't very good as it only has one new line on each list element and the whole ting could have been done with a chomp in this case.

You also asked about HTML line ends ....
For a paragraph tag:
     s/\s*<p\s.*?>/ /igs;
will get rid of the "p tags" and replace them with a space



This page is a thread posted to the opentalk forum at www.opentalk.org.uk and archived here for reference. To jump to the archive index please follow this link.

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2012: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 899360 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho