Thinking outside the box...

You said you already have three search and replace operations that do what 
you want but are looking for a one operation solution. Canonize is one way 
to achieve a one operation solution.

Put your existing search and replaces in a transformation file. One search 
and replace per line and separate the search from the replace with a tab (a 
real tab not a \t). Save it for subsequent use in the (Text->)Canonize… 
operation and bring to front the file you want to do the changes on.

I don't know what options you're using with your existing search and 
replace operations. The Canonize… dialog has options for Case sensitive, 
Match words, and Use grep. There's corresponding mode-line variables you 
can embed in your transformation file that will override the dialog options 
set.

Given your examples, a transformation file of:
aWord    aSomething
a_WORD    a_SOMETHING
a_word    a_something

with Case sensitive and, Match words options set would replace all the word 
forms in a source file to the desired corresponding something forms using 
BBEdit's Canonize…

On Wednesday, February 28, 2024 at 1:43:01 PM UTC-8 Jim Straus wrote:

> Sorry, maybe I wasn’t clear. Yes, “word” is a place holder. Think aWord, 
> A_WORD, a_word as possible items to be changed. I want to change them to 
> aSomething, A_SOMETHING, a_something. Searching for “word” in a case 
> insensitive manner is easy, and even capture it. The question is, can I 
> apply the caseness of the captured value to a replacement value. Maybe if 
> there was a conditional replacement that inspects the captured value, I 
> could do it. There are lots of controls available on the search pattern, 
> but it seems not as much on the replacement value.
> Thanks!
> -Jim Straus
>
> > On Feb 28, 2024, at 3:14 PM, Brian Forte <[email protected]> wrote:
> > 
> > On Wed, 28 Feb 2024 11:38:07 -0600, Jim Straus wrote:
> >> 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?
> > 
> > The below is simplistic and almost brute-force, but it appears to work.
> > 
> > I’m assuming ‘word’ is representative. That is, I’m assuming you are
> > searching for a specific string of letters where the only potential
> > difference between each example string is the letter case.
> > 
> > Then
> > 
> > Search for: [W|w][O|o][R|r][D|d]
> > Replace with: <whatever spelling case for the ‘word’ string you want>
> > 
> > Hope this helps.
> > 
> > Regards,
> > 
> > Brian Forte.
> > --
> > Brian Forte
> > <[email protected]>
> > 
> > --
> > 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/20240229065709634649.4025da7c%40adelaide.on.net
> .
>

-- 
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/1bcdd128-7516-4645-8029-bbe3f8aef5f3n%40googlegroups.com.

Reply via email to