[ale] perl regex.... again
Geoffrey Myers
lists at serioustechnology.com
Tue Mar 1 06:46:03 EST 2011
Michael H. Warfield wrote:
> On Mon, 2011-02-28 at 16:41 -0500, Michael H. Warfield wrote:
>> On Mon, 2011-02-28 at 16:28 -0500, Geoffrey Myers wrote:
>>> Pat Regan wrote:
>>>> On Mon, 28 Feb 2011 15:38:37 -0500
>>>> Geoffrey Myers <lists at serioustechnology.com> wrote:
>>>>
>>>>>> Geoffrey,
>>>>>>
>>>>>> if ($line =~ /[^\040-\176]/) {
>>>>>>
>>>>>> print ("Line contains out of range characters\n");
>>>>>>
>>>>>> }
>>>>>>
>>>>>> keith
>>>>> Does not pick up an string that contains an embedded character
>>>>> outside the range. Say:
>>>>>
>>>>> This is a bad ^G line.
>>>> His code should print the message for a control-g. Can you post your
>>>> actual code and some test input that fails?
>>> I cut/pasted his code inside my:
>>>
>>> while(<>) {
>>> }
>>>
>>> the above example is from my test data;
>
>>> This is a bad ^G line.
>
>> Silly question but that is a true cntrl-G and not a ^G like what was in
>> your message?
>
>> Due to a bug in his suggested code, why don't you try a tab. He forgot
>> to include the HT (Horizontal Tab) character (\011). Unless there's a
>> problem using octal escapes in bracketed exclusions with perl. I've
>> seen some things what work outside of a bracket range and won't inside.
>> Try this instead [^ -~] which will do the same thing (and still has the
>> same bug).
>
> Yeah, strong suspicion you can not do \OOO inside a regex. From the man
> page:
>
> man 7 regex
>
> ==
> ... all other special characters, including '\', lose their special
> significance within a bracket expression.
> ==
But I would assume that I should be able to use [[:print:]], but I can't
get that to work either.
--
Until later, Geoffrey
"I predict future happiness for America if they can prevent
the government from wasting the labors of the people under
the pretense of taking care of them."
- Thomas Jefferson
More information about the Ale
mailing list