I've used something like this with a couple of my scripts.
if character 1 of found text of nextChar is in (characters 1 through -1 of
" ,;'\"") then
-Kendall
On Wednesday, October 17, 2012 6:17:22 PM UTC-4, Oliver Taylor wrote:
>
> I'm trying to write a different kind of "Select Word" script. I've used
> Gruber's and several others, but find them lacking or buggy in lengthy
> documents. Because I'm an applescript simpleton, and this is an interesting
> exercise, I've done it with a chain of grep searches.
>
> The logic I'm using is this:
> 1. Start by looking at the character to the right of the insertion point.
> 2. If that character is a *space*, then move to the beginning of the word
> (using customized regex),
> 3. and then select to the end of the word (again, using a custom regex)
> 4. *if not* reverse the order of the searches.
>
> This works very well for what I need, but I'd like to test for more than
> just a space. Meaning: if the character to the right of the insertion point
> is a space, or anything I define.
>
> Is it possible to test the found text *of* nextChar as regex?
>
> If you can point me in the right direction, I'd be grateful.
>
> *tell* *application* "BBEdit"
>
>
> --look at the next character
> *set* nextChar *to* *find* "." searching in *text* *of* *front* *text
> window* options {search mode:grep, wrap around:false}
>
>
> *if* found text *of* nextChar = " " *then* --should also test for
> punctuation
> -- search for the beginning of the word
> *find* "^|(?<!\\w[^\\w\\s])\\b(?=\\w)" searching in *text* *of* *front* *text
> window* options {search mode:grep, wrap around:false, backwards:true} *
> with* selecting match
> -- then extend the selection to the end
> *find* "(?<=\\w)\\b(?![^\\w\\s]\\w)|$" searching in *text* *of* *front* *text
> window* options {search mode:grep, wrap around:false, extend selection:
> true} *with* selecting match
> *else*
> -- search for the end of the word
> *find* "(?<=\\w)\\b(?![^\\w\\s]\\w)|$" searching in *text* *of* *front* *text
> window* options {search mode:grep, wrap around:false} *with* selecting
> match
> -- then extend the selection to the beginning
> *find* "^|(?<!\\w[^\\w\\s])\\b(?=\\w)" searching in *text* *of* *front* *text
> window* options {search mode:grep, wrap around:false, backwards:true, extend
> selection:true} *with* selecting match
> *end* *if*
>
>
> *end* *tell*
>
--
--
You received this message because you are subscribed to the
"BBEdit Talk" discussion group on Google Groups.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
<http://groups.google.com/group/bbedit?hl=en>
If you have a feature request or would like to report a problem,
please email "[email protected]" rather than posting to the group.
Follow @bbedit on Twitter: <http://www.twitter.com/bbedit>