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.