I did this once upon a time but had to use separate replacements for each 
case pattern. Here's an example you can run in BBEdit:

#!/usr/bin/env perl

@data = ( "word","Word","WORD");

$mask = "%-10s >> %s\n";

for $datum (@data) { 
    printf $mask, $datum, fix($datum);
    print "\n";
}

sub fix {
local $_ = shift;
s/\b[a-z]+?\b/something/g;
s/\b[A-Z][a-z]+?\b/Something/g;
s/\b[A-Z]+?\b/SOMETHING/g;
return $_;
}

On Wednesday, February 28, 2024 at 9:38:23 AM UTC-8 Jim Straus wrote:

> Hello all regex experts -
>   I'm looking to change a word in my code to another one, but it is 
> sometimes "Word", "word" or "WORD".  I can do this with three search and 
> replaces.  I also know about the \u\U modifications to the group (so \u\1 
> to uppercase the first letter), but that doesn't really work, since I'm 
> changing the word (not using the group).  What I think I want is something 
> that would take just the case of the matched group and apply that to 
> replacement text.  Or is there another way to accomplish this in one 
> pattern?
>   Thanks!
> -Jim Straus
>

-- 
This is the BBEdit Talk public discussion group. If you have a feature request 
or need technical support, please email "[email protected]" rather than 
posting here. Follow @bbedit on Twitter: <https://twitter.com/bbedit>
--- 
You received this message because you are subscribed to the Google Groups 
"BBEdit Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/bbedit/91235356-f030-4e14-8efc-f3995525b29an%40googlegroups.com.

Reply via email to