in reply to Re: More complicated regular expression?
in thread More complicated regular expression?

Sweet deal javafan
  • Comment on Re^2: More complicated regular expression?

Replies are listed 'Best First'.
Re^3: More complicated regular expression?
by jaldama (Acolyte) on Jan 26, 2012 at 18:21 UTC
    Last question. What if the output instead of
    Using domain server: Name: Address: Aliases: has address
    Comes out on one line like this:
    $ host A
    My previous matching idea still cuts off the last digit. I thought using javafan's and searching for A
    /A (\S+)/ and do_something($1);
    Might work but it doesn't seem to. Is there an issue because of the spacing?

      If you change the game, you change the win. Tell us all of the contexts in which you hope to find your desired string.

      JavaFan's regex worked for your first example because you showed a short, unambiguous introduction to your goal string. /\S/ matches on non-whitespace; there's no whitespace in your first example between /has address / and your goal string. Note that the single space following the last 's' is included in the regex.

      Matching on /A/ doesn't work in your second example because the introduction to your goal string is not /A/; it's /A\s+/. This would not be real smart; it's not likely to be unique.

      Formulate your problem clearly. Prepare a short list of all the various forms of input data you expect to see; and for each form, desired output. Then it is easy, even possible, to construct a solution.

      I'm not the guy you kill, I'm the guy you buy. —Michael Clayton
      my ($address) = m{\s+ (?: address | A) \s+ (\S+)}x;

      I still wonder why host should change its output format, anyway.

      perl -ple'$_=reverse' <<<ti.xittelop@oivalf

      Io ho capito... ma tu che hai detto?