Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Detect STX and ETX hex in received string

by kcott (Abbot)
on Nov 28, 2012 at 07:28 UTC ( #1005970=note: print w/ replies, xml ) Need Help??


in reply to Detect STX and ETX hex in received string

G'day jagexCoder,

Welcome to the monastery.

This regexp seems to do what you want:

qr{ [$STX] ( [^$ETX]{0,80} ) [^$ETX]* [$ETX] }x

Here's my test:

$ perl -Mstrict -Mwarnings -e ' my ($STX, $ETX) = (chr(2), chr(3)); my $re = qr{ [$STX] ( [^$ETX]{0,80} ) [^$ETX]* [$ETX] }x; my $empty = $STX . $ETX; my $short = $STX . "a" x 79 . $ETX; my $exact = $STX . "a" x 80 . $ETX; my $long = $STX . "a" x 81 . $ETX; my $buf = $empty . $short . $exact . $long; print "1234567890" x 8, "\n"; print "$_\n" for $buf =~ /$re/g; print "1234567890" x 8, "\n"; ' 1234567890123456789012345678901234567890123456789012345678901234567890 +1234567890 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaa 1234567890123456789012345678901234567890123456789012345678901234567890 +1234567890

-- Ken


Comment on Re: Detect STX and ETX hex in received string
Select or Download Code
Re^2: Detect STX and ETX hex in received string
by ColonelPanic (Friar) on Nov 28, 2012 at 09:05 UTC

    This regex would not match anything unless an ETX was found, while the poster wanted to stop reading as soon as 80 bytes were found.

    (Apologies; originally this comment contained a typo such that it made no sense)



    When's the last time you used duct tape on a duct? --Larry Wall

      I'd say that's a matter of interpretation. I did consider the situation where no ETX existed; however, jagexCoder wrote "... packets of interest that are within STX and ETX endings.". Accordingly, I coded for STX and ETX to always be present. Perhaps wait for the OP to clarify this.

      [Aside: You appear to have removed the original typo, so I don't know what you're apologising for. Regardless, I accept your apology. :-) ]

      Update: Oh dear! Having posted this, I see I've also introduced a typo such that it made no sense.
      s/Perhaps wait for to OP can clarify this./Perhaps wait for the OP to clarify this./

      -- Ken

        Fair enough, I suppose it is a matter of interpretation.


        When's the last time you used duct tape on a duct? --Larry Wall

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1005970]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (7)
As of 2014-12-20 05:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (95 votes), past polls