Ah, I think I see now. Thanks for the explanation. Looks like I usually want \h instead of \s (so as to exclude \n \r and a few other more esoteric vertical whitespace).
-sam

On 12 Jan 2017, at 2:42 PM EST, Fletcher Sandbeck wrote:

I think it does what you're expecting if you change the pattern so the whitespace match isn't greedy: ^\s*?$

\s matches returns and newlines so your pattern ^\s*$ should match any block of lines which contain only whitespace. With the non-greedy modifier it instead stops at the first end-of-line it finds so cycles through each line which contains only whitespace in turns.

I am seeing some strange behavior, which you mention, where if the cursor is at the start of the file it only matches lines 2 through 3, but upon wrapping around it matches lines 2 through 4 as I'd expect.

[fletcher]


On Jan 12, 2017, at 11:22 AM, Sam Hathaway <[email protected]> wrote:

Patrick,

Say I have this file:
----8<-cut-here----
one



two
----8<-cut-here----

(Line 2 and 4 are empty, line 3 consists of four spaces.)

And this pattern: ^\s*$

Shouldn’t it match these three ranges?
- zero chars on line 2
- four spaces on line three
- zero chars on line 3

Instead, it seems to match only one range:
- 6 chars: the linefeed at the end of line 2, the four spaces on line three, and the linefeed at the end of line 3.

I’m still not seeing why ^\s*$ would match chars 5 through 10 (the first empty line AND the line with 4 spaces) in one fell swoop, but would not match char 11 (the 2nd empty line).

Shouldn’t it match these three ranges?
- zero chars after char 4
- four chars (“    ”) starting with char 6 and ending with char 9
- zero chars after char 10

Confused!
-sam

On 12 Jan 2017, at 10:46 AM EST, Patrick Woolsey wrote:

On 1/11/17 at 8:59 PM, [email protected] (Mike Pullen) wrote:

^\s*$ does not work for me in BBEdit. BBEdit does not find the empty lines that proceeds the line containing "four" or the line containing "six" in my test file.

It isn't expected to, since $ explicitly matches the position _preceding_ the nearest line end:

[Chapter 8: Searching with Grep / page 166]

   It is important to note that ^ and $ do not actually match return
characters. They match zero-width positions after and before returns, respectively. So, if you are looking for “foo” at the end of a line, the pattern "foo$" will match the three characters "f", "o", and "o".
   If you search for "foo\r", you will match the same text, but the
   match will contain four characters: "f", "o", "o", and [the
   linebreak which follows].



Regards,

Patrick Woolsey
==
Bare Bones Software, Inc.             <http://www.barebones.com/>

--
This is the BBEdit Talk public discussion group. 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>
--- 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 post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/bbedit.

--
This is the BBEdit Talk public discussion group. 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>
--- 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 post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/bbedit.

--
This is the BBEdit Talk public discussion group. 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>
---
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 post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/bbedit.

--
This is the BBEdit Talk public discussion group. 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>
--- 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 post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/bbedit.

Reply via email to