Forum Discussion
Rory_Hewitt_139
Jun 04, 2014Nimbostratus
Determining processing based on flags in a URL
I have a URL which will come in as
/features?features=10010001
where each '1' or '0' is a 'flag'. I need to check each flag in turn and depending on its value, XOR it with a matching flag s...
- Jun 04, 2014
that kinda works, except that the characters could potentially be 0, 1 or -
may we remove - before scanning?
% scan [string map {"-" ""} 10--01-00---01] %2d%2d%2d%2d a b c d 4 % put "$a $b $c $d" 10 1 0 1
by the way, if flag is only one digit each, can we use split?
% split [string map {"-" ""} 10--01-00---01] {} 1 0 0 1 0 0 0 1
nitass_89166
Jun 04, 2014Noctilucent
what about scan or regexp?
scan
% scan 10010001 %2d%2d%2d%2d a b c d
4
% put "$a $b $c $d"
10 1 0 1
% time "scan 10010001 %2d%2d%2d%2d a b c d" 1000
5.319 microseconds per iteration
regexp
% regexp {(\d\d)(\d\d)(\d\d)(\d\d)} 10010001 m a b c d
1
% put "$a $b $c $d"
10 01 00 01
% time "regexp {(\d\d)(\d\d)(\d\d)(\d\d)} 10010001 m a b c d" 1000
3.077 microseconds per iteration
- Rory_Hewitt_139Jun 04, 2014NimbostratusHey @nitass, that kinda works, except that the characters could potentially be 0, 1 or -, so I can't use %d in scan or \d in regex. I can use %c in scan, but it converts them to a Unicode integer. So for instance, scan $flags %c%c%c%c%c%c%c%c flag1 flag2 flag3 flag4 flag5 flag6 flag7 flag8 gives me "49 45 48 45 45 45 45 49". Any way to simply chop them out as single characters?
- JGJun 05, 2014CumulonimbusThe test results here seem to go contrary to the prevalent view that prefers "scan" to "regexp" for performance.
Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects