in reply to Looking for white spaces between words

$foo =~ s/( {2,})/" " x length($1)/ge

-enlil

Replies are listed 'Best First'.
Re^2: Looking for white spaces between words
by bradcathey (Prior) on Jun 10, 2004 at 20:47 UTC
    That works great to replace all spaces. However, as a casual observer, I'm not sure this is what was asked. Were all the spaces to be replaced with the non-breaking spaces, or just those after the first one, leaving one space without the replacement. So:
    "the lazy  brown   fox    jumped..."
    But I would like to expand the question a bit. I would like to see all spaces removed with the exception of just one separating the words, and then have that replace with the non-breaking space. So:
    "the lazy brown fox jumped..."

    —Brad
    "A little yeast leavens the whole dough."
      That works great to replace all spaces. However, as a casual observer, I'm not sure this is what was asked. Were all the spaces to be replaced with the non-breaking spaces, or just those after the first one, leaving one space without the replacement. So:
      "the lazy  brown   fox    jumped..."

      This should work:

      $foo =~ s/(?<= )( +)/'&nbsp;' x length($1)/ge

      But I would like to expand the question a bit. I would like to see all spaces removed with the exception of just one separating the words, and then have that replace with the non-breaking space. So:

      "the lazy&nbsp;brown&nbsp;fox&nbsp;jumped..."

      Can be solved thusly:

      $foo =~ s/ {2,}/&nbsp;/g;
      I believe this answers both requests unless I am misreading something.

      -enlil