[ale] perl regex.... again
Ron Frazier
atllinuxenthinfo at c3energy.com
Tue Mar 1 00:08:50 EST 2011
I don't know perl, but don't flame me. I'm posting this to possibly
stimulate thought. From a generic programming perspective, could you do
something like the following? This is pseudocode, not a particular
language. This syntax is not designed to be put directly into a script.
I'm just throwing this out, and haven't tested it.
This assumes you can call grep from Perl, and that the line to be tested
is in a file called lineoftext.txt . Use grep to count the matches of
the pattern. Uses some of grep's predefined patterns per the man page.
This assumes those patterns work for your purpose.
linelength := length ( lineoftext.txt ) // get the length of the string
if linelength > 0 // there are characters in the file
for counter = 1 to linelength // iterate through each character in the
string
thischaracter := lineoftext.txt [ counter ] // extract the character at
the "counter" position in the string
if result ( grep -c [:alnum:] thischaracter ) == 0 // this character is
NOT alphanumeric
andif result ( grep -c [:punct:] thischaracter ) == 0 // this character
is NOT punctuation
andif result ( grep -c [:space:] thischaracter ) == 0 // this character
is NOT a space
andif asciivalue ( thischaracter ) <> 9 // this character is NOT a TAB
print "character out of bounds"
set appropriate warning flag
endif
endif
endif
endif
next counter
elseif linelength == 0 // there are no characters in the file
print "there is nothing to test"
set appropriate warning flag
endif
On 02/28/2011 12:59 PM, Geoffrey Myers wrote:
> I'll try this again as I didn't get any bites before. I'm trying to
> come up with a perl regex that will identify a line of data that has any
> character outside of alphanumeric, punctuation, spaces, tabs.
>
> Can't seem to formulate.
>
> anyone?
>
>
--
(PS - If you email me and don't get a quick response, you might want to
call on the phone. I get about 300 emails per day from alternate energy
mailing lists and such. I don't always see new messages very quickly.)
Ron Frazier
770-205-9422 (O) Leave a message.
linuxdude AT c3energy.com
More information about the Ale
mailing list