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.
