in reply to Re^2: Reg exp questions
in thread Reg exp questions
First thing: You don't need [...] if there is only one element in your character class. \h alone is already a metasymbol that specifies a character class, so if all you want is horizontal whitespace, you could say:
s/\h/_/g;
You asked how to permit it to accept more than one adjacent whitespace, and how to replace any number of adjacent whitespaces with a single underscore:
s/\h+/_/g
If by \h you really just mean 0x20 (chr 32), you could use transliteration with "squash" instead (see perlop):
tr/ /_/s;
This will be a little more efficient than substitution, but tr/// is far less flexible, as it doesn't have regex semantics; there is no pattern, only a list of characters to be transliterated.
Dave
|
|---|