|
|
|||||||||
|
|||||||||
| |||||||||
|
|
|
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
|
|
Stop making mediocre tutorials.The best tutorials are video! Camtasia Studio makes it easy to create engaging, buzz-building screen videos at any size, in any popular format. Download the free trial!
|
|
#1
|
|||
|
|||
|
Perl regex
I'm looping through a text file and have placed the text for each row into a string.
These are good matches that I would like to keep the string. The numbers can change and also the number of digits. RT.dc_id=23432h1 RT.dc_id=23432h1& morestuff&RT.dc_id=23h1 morestuff&RT.dc_id=23h1&morestuff This would be a bad match where I want to envoke next. RT.dc_id=234ew32h1 RT.dc_id=23432h1sdfrdsfg& Here is the regex I tried to build. Thoughts? Did I do this correctly? Case insentiave match where RT.dc_id=(number) one or more times with either m1% or m1 m/RT.dc_id=[0-9]+m1&/i Code:
($query != m/RT.dc_id=[0-9]+m1&/i or m/RT.dc_id=[0-9]+m1/i) && next; # got a match let's skip |
|
#2
|
||||
|
||||
|
Code:
($query != m/RT.dc_id=[0-9]+m1&/i or m/RT.dc_id=[0-9]+m1/i) && next; I'm being a little bit picky, but what do you read that as ... me Code:
$query = (chance of a nw wind) or (chance of a sw wind) and if you can get either to result as true, then ... next ... what are you looking for ...
__________________
--Ax without exception, there is no rule ... The great thing about Object Oriented code is that it can make small, simple problems look like large, complex ones ![]() 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. -- Jamie Zawinski |
|
#3
|
|||
|
|||
|
Quote:
The != is if it does not match. So if my string does not match the conditions then next. The conditions are the two regex. # here are good strings that I do not want to use next my $string= "e17ec&RT.dc_id=97h1&RT.cd=32"; my $string= "e17ec&RT.dc_id=97h1 "; my $string= "e17ec&RT.dc_id=97545h1&RT.cd=32"; # here are bad strings that I do want to use next my $string= "e17ec&RT.dc_id=97h1gsdg&RT.cd=32"; my $string= "e17ec&RT.dc_id=9bad7h1&RT.cd=32"; my $string= "e17ec&RT.dc_id=97h1"; my $string= "e17ec&RT.dc_id=97h12&RT.cd=32"; # Skip over incorrectly formated strings if(($string=~ m/RT\.dc_id\=[0-9]+h1&/i) && ($url =~ m/RT\.dc_id/i)) { print "next1\n"; #next; } if(($url =~ m/RT\.dc_id\=[0-9]+h1 /i) && ($url =~ m/RT\.dc_id/i)){ print "next2\n"; #next; # got a match let's skip } |
|
#4
|
||||
|
||||
|
Quote:
!= is not a regexp operator , you want to use !~ |
![]() |
| Viewing: Dev Shed Forums > Programming Languages > Perl Programming > Perl regex |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|
|