
fashimpaur
User
Apr 25, 2002, 10:09 AM
Post #4 of 5
(11881 views)
|
Re: [LKM] disallowing certain strings inside expressions
[In reply to]
|
Can't Post
|
|
LKM, Here is a more advanced test: use English; my $string = "34objGGTIDWWED/Type /Catalog 23ddswwe3389tendobj33obj123ZXQT /Foo /Bar PPGHREW123endobj". "32objGGTIDWWED/Type /Catalog 23ddswwe3389tendobj31obj123ZXQT /Foo /Bar PPGHREW123endobj". "30objGGTIDWWED/Type /Catalog 23ddswwe3389tendobj29obj123ZXQT /Foo /Bar PPGHREW123endobj". "28objGGTIDWWED/Type /Catalog 23ddswwe3389tendobj27obj123ZXQT /Foo /Bar PPGHREW123endobj". "26objGGTIDWWED/Type /Catalog 23ddswwe3389tendobj25obj123ZXQT /Foo /Bar PPGHREW123endobj". "24objGGTIDWWED/Type /Catalog 23ddswwe3389tendobj23obj123ZXQT /Foo /Bar PPGHREW123endobj". "22objGGTIDWWED/Type /Catalog 23ddswwe3389tendobj21obj123ZXQT /Foo /Bar PPGHREW123endobj"; $string =~ s/\d{2}obj[^\/]*(\/Type \/Catalog){1}(.*?)endobj//gs; print join("endobj\n", (split ("endobj", $string))); print "endobj"; print "\n\nReal \$string Value: <".$string.">";
... and this was the result: 33obj123ZXQT /Foo /Bar PPGHREW123endobj 31obj123ZXQT /Foo /Bar PPGHREW123endobj 29obj123ZXQT /Foo /Bar PPGHREW123endobj 27obj123ZXQT /Foo /Bar PPGHREW123endobj 25obj123ZXQT /Foo /Bar PPGHREW123endobj 23obj123ZXQT /Foo /Bar PPGHREW123endobj 21obj123ZXQT /Foo /Bar PPGHREW123endobj Real $string Value: <33obj123ZXQT /Foo /Bar PPGHREW123endobj31obj123ZXQT /Foo /Bar PPGHREW123endobj29obj123ZXQT /Foo /Bar PPGHREW123endobj27obj123ZXQT /Foo /Bar PPGHREW123endobj25obj123ZXQT /Foo /Bar PPGHREW123endobj23obj123ZXQT /Foo /Bar PPGHREW123endobj21obj123ZXQT /Foo /Bar PPGHREW123endobj>
Please ignore how I split it to print it neatly. This was just to show that in fact this would work for embedded /Type /Category objects as well as leading ones. So, when you get to work tomorrow, you can be more excited that you are one step closer to solving your programming task. Glad to help, Dennis $a="c323745335d3221214b364d545". "a362532582521254c3640504c3729". "2f493759214b3635554c3040606a0", print unpack"u*",pack "h*",$a,"\n\n";
|