http://qs321.pair.com?node_id=872344


in reply to Re: regex replace problem
in thread regex replace problem

One of the following two options should work for all cases you listed. I had to use two because I don't know what your desired result is for the 'href' line.

OPTION 1
If you want your example
"href="tbgl_SetMaterialDiffuse.htm">
to look like
"href="SetMaterialDiffuse.htm_gl">
you should use the following:

$tmp =~s/TBGL_([a-z]+(\.[a-z]+)?)/$1_gl/i;

OPTION 2
If you want that example to look like
"href="SetMaterialDiffuse_gl.htm">
use this:
$tmp =~s/TBGL_([a-z]+)/$1_gl/i;

I hope this helps :)

Here is a quick script to test the cases

#!/usr/bin/perl use strict; my @lines = ( 'title>TBGL_SetMaterialDiffuse</title', 'Heading1">TBGL_SetMaterialDiffuse</span', 'href="tbgl_SetMaterialDiffuse.htm">', '">tbgl_SetMaterialDiffuse</', 'f_Code_Keyword">TBGL_DeleteMaterial</span' ); foreach my $tmp (@lines) { print "$tmp\n"; #$tmp =~s/TBGL_([a-z]+(\.[a-z]+)?)/$1_gl/i; #case 1 $tmp =~s/TBGL_([a-z]+)/$1_gl/i; #case 2 print "$tmp\n\n"; }