> On Aug 13, 2021, at 21:30, e2o <[email protected]> wrote:
> 
> Howdy! Is there an easy way to copy a chunk of text matched with a regular 
> expression to the clipboard only? No search/replace.
> 
> I have an expression that selects everything at the beginning of a document 
> up to but not including the first blank line. I need to copy this text and 
> copy it to the bottom of the document. I can't use Process Lines Including 
> because it uses \A to match beginning of document, which doesn't fly there.
> 
> So my expression is:
> \A.*\r(^\S.*\r)+
> 

Hey Eric,

Your pattern does not fully match your verbal description.  Whenever asking for 
text processing help please always include at least one good real-world before 
and after example.

Doing so will always save yourself and anyone who helps you both time and 
aggravation.

>From what I understand your task is really just a simple find/replace.

AppleScriptified:

-------------------------------------------------------------------------------------------
# Auth: Christopher Stone
# dCre: 2021/08/15 09:01
# dMod: 2021/08/15 09:01 
# Appl: BBEdit
# Task: Copy text from (the beginnging of a document to the first blank line) 
to the end of document.
# Libs: None
# Osax: None
# Tags: @Applescript, @Script, @BBEdit, @RegEx
# Note: Posted to BBEdit-Talk for <[email protected]>.
-------------------------------------------------------------------------------------------

tell application "BBEdit"
    tell front text document's text
        replace "(?ms)(\\A.*?)(?=^$)(.+)" using "\\1\\2\\n-----\\n\\1" options 
{search mode:grep, case sensitive:false, starting at top:true}
    end tell
end tell

-------------------------------------------------------------------------------------------

Using a Text Factory would be the simplest method, but as you can see the 
AppleScripted version isn't particularly difficult.

I've added a separator for a visual cue, which you can change as you like.

Now then – let's tackle the task as you describe it via AppleScript but without 
using the clipboard, since copy and paste is completely unnecessary.

Knowing how to do this may come in handy some time.

-------------------------------------------------------------------------------------------
# Auth: Christopher Stone
# dCre: 2021/08/15 09:01
# dMod: 2021/08/15 09:19
# Appl: BBEdit
# Task: Copy text from (the beginnging of a document to the first blank line) 
to the end of document.
# Libs: None
# Osax: None
# Tags: @Applescript, @Script, @BBEdit, @RegEx
# Note: Posted to BBEdit-Talk for <[email protected]>.
-------------------------------------------------------------------------------------------
property LF : linefeed
-------------------------------------------------------------------------------------------

tell application "BBEdit"
    
    tell front text document's text
        
        set findRecord to find "(?ms)(\\A.*?)(?=^$)" options ¬
            {search mode:grep, case sensitive:false, starting at top:true}
        
        if found of findRecord is true then
            set after it to LF & LF & findRecord's found text
        end if
        
    end tell
    
end tell

-------------------------------------------------------------------------------------------

Doing it this way isn't particularly difficult either, even if it's a little 
less straightforward.

--
Best Regards,
Chris

-- 
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/96640180-0C63-4CAC-BF0C-FE95C0BF93E6%40gmail.com.

Reply via email to