regular expression problem ? and * characters

Ask a Question related to PERL Modules, Design and Development.

  1. #1

    Default regular expression problem ? and * characters

    Im writing a perl script now and this is part of the sricpt

    chomp = ($pattern = ARGV[0]);

    for each(@thisarray)
    {
    if($_ =~ m/$pattern/i)
    {
    print ("found it here, $_");
    }
    }

    the array @thisarray is given.

    this scprit reads from the command line and pass that input the the
    pattern
    and will check if the pattern match the any string inside the array it
    will
    print the msg.

    I have done this part succesfully if the input is just a normal string
    like a ab

    my question is how do you imporve it so it can accept the input that
    contains* and ?
    character(s) like *ab? a*b* *a*

    thanks a lot.

    compboy Guest

  2. Similar Questions and Discussions

    1. #39405 [NEW]: regular expression breaking on strings >= 24999 characters
      From: spam at dragy dot de Operating system: Any PHP version: 5.2.0 PHP Bug Type: PCRE related Bug description: regular...
    2. Regular Expression Problem
      I am trying to parse a relatively simple SQL query with a regular expression. All is going well except for one issue I don't seem to be able to...
    3. Problem with regular expression
      I'm trying to use a regular expression to remove from the output of a call to ToString with an XML object, the text between "<?" and "?>" txtvar...
    4. php regular expression problem
      Hi, I've got just a small problem, it's probably not very complex but I'm not very experienced with regular expression stuff. I just need to...
    5. help on regular expression
      Hi, I need some help on regular expression... i have following in variable $total_count $total_count = "##I USBP 000001 10:38:09(000)...
  3. #2

    Default Re: regular expression problem ? and * characters

    compboy schreef:

    fup set to clpm
    > Im writing a perl script now and this is part of the sricpt
    >
    > chomp = ($pattern = ARGV[0]);
    That is not real code. ITYM

    chomp ($pattern = ARGV[0]) ;

    > for each(@thisarray)
    That is not real code. ITYM

    foreach (@thisarray)

    or

    for (@thisarray)
    > {
    > if($_ =~ m/$pattern/i)
    > {
    > print ("found it here, $_");
    > }
    > }
    You can change all that to

    /\Q$pattern/ and print "found '$_'\n" ;

    > my question is how do you imporve it so it can accept the input
    > that contains* and ?
    > character(s) like *ab? a*b* *a*
    Read perlre, look for \Q.

    (so if you meant wildcards, don't use "\Q").

    --
    Affijn, Ruud

    "Gewoon is een tijger."


    Dr.Ruud Guest

  4. #3

    Default Re: regular expression problem ? and * characters


    compboy wrote:
    > Im writing a perl script now and this is part of the sricpt
    >
    > chomp = ($pattern = ARGV[0]);
    you clearly are not using strict
    ARGV[0] should be $ARGV[0]

    metaperl@gmail.com Guest

  5. #4

    Default Re: regular expression problem ? and * characters

    "compboy" <compboyxyz@gmail.com> wrote in news:1148814168.551306.197780@
    38g2000cwa.googlegroups.com:
    > Im writing a perl script now and this is part of the sricpt
    >
    > chomp = ($pattern = ARGV[0]);
    >
    > for each(@thisarray)
    > {
    > if($_ =~ m/$pattern/i)
    > {
    > print ("found it here, $_");
    > }
    > }
    No it isn't. That's not Perl. It won't compile.

    Please show your actual code, not something that "looks like it."
    > my question is how do you imporve it so it can accept the input that
    > contains* and ?
    > character(s) like *ab? a*b* *a*
    perldoc -f quotemeta
    Eric Bohlman Guest

Posting Permissions

  • You may not post new threads
  • You may post replies
  • You may not post attachments
  • You may not edit your posts

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139