Chris, did you mean: $newSubject =~ s!\h!\%20!g;
rather than $newSubject =~ s!\h!\$20!g; — Bruce _bruce__van_allen__santa_cruz_ca_ > On Feb 16, 2023, at 8:15 PM, ChristianBoyce <[email protected]> wrote: > > Hi there. I have a big bunch of text, marked up with codes that get replaced > with fancy HTML stuff in BBEdit. I’m doing it with AppleScripts that do > “replace” operations. Everything is great except for one new situation. > > Normally, we select some text, and run a script to operate on the selection. > So I can write things like this: > > replace the_search_string using the_replace_string searching in selection of > text window 1 of myDocument options {search mode:literal, starting at > top:true, wrap around:false, backwards:false, case sensitive:false, match > words:false, extend selection:false} > In my new situation, I want to replace spaces with %20 but only in PART of > the selected text. I have text like this: > [Joe J. Smith]<[email protected]><subject=Sign me up!><body=I want to > subscribe to the newsletter.> > (There would be hundreds of lines of text selected, with various email > addresses and “subject=“ text. Maybe 1 percent of the selected text contains > text that I want to change) > Here, I want to change “subject=Sign me up!” to “subject=Sign%20me%20up!” > I can’t do this: > replace " " using "%20" searching in selection of text window 1 of myDocument > … because that would change “Joe J. Smith” to “Joe%20J%20Smith” (among other > things. There is a lot of text in the selection that should retain its spaces > rather than convert to %20. > What I want to do is (somehow) do a Find (searching in the original > selection), looking for “subject=“ and then some GREP to get everything up to > the closing “>”. I was hoping that by adding “with selecting match” I could > select EVERY matching string (a discontiguous selection) and then search in > this new selection for spaces and replace them all in one move with %20. > Basically I’m trying to change the selection to be only the parts I want to > make changes in. > My problem is, when I do a Find and “with selecting match” it only finds and > selects the FIRST instance. I can then do my replacing within that text, but > that only changes the first instance. What I’m doing now is looping through > the document, changing the first instance that the Find finds, and then > coming around on the loop to pick up the next one, and the next one, etc. > It’s a little on the slow side and I have to set the number of loops to > something pretty high to be sure I cover the most extreme situation (which is > hard to predict so I am doing 1000 loops). A modification would be to figure > out how many loops I have to make, which I think I could do, but I don't want > to loop at all. > I know I can do a Find manually in BBEdit and choose the Find All option. Can > I make use of the results of a Find All in a script? Maybe do a Find… with a > Find All option, and then do my replace on the results of that Find? > Maybe my approach is all wrong here. Even if it is, it would be useful to > know whether I can do a Find… to create a discontiguous selection. If I can, > my problem goes away— I do a Find... within the original selection, I select > the results box that Find... (producing a new, smaller selection), I run a > single “replace” on that new selection. If I can’t do that, I wonder what is > the right way to go. > Thanks for any assistance you can give. Basically I'm trying to get out of > doing a loop. > > > -- > 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/8ab01435-e68a-4025-ba87-062c99fe481bn%40googlegroups.com. -- 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/488F0CE8-05E7-4138-91F8-573E769D2701%40cruzio.com.
