* Use the characters "+" and "-" in regular expressions
@ 2021-05-19 16:07 steve-humphreys
2021-05-19 16:17 ` Skip Montanaro
2021-05-19 19:17 ` [External] : " Drew Adams
0 siblings, 2 replies; 48+ messages in thread
From: steve-humphreys @ 2021-05-19 16:07 UTC (permalink / raw)
To: Help Gnu Emacs
Is there a way to use the character "+" and "-" in regular expressions?
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Use the characters "+" and "-" in regular expressions
2021-05-19 16:07 Use the characters "+" and "-" in regular expressions steve-humphreys
@ 2021-05-19 16:17 ` Skip Montanaro
2021-05-19 16:26 ` steve-humphreys
2021-05-19 16:27 ` tomas
2021-05-19 19:17 ` [External] : " Drew Adams
1 sibling, 2 replies; 48+ messages in thread
From: Skip Montanaro @ 2021-05-19 16:17 UTC (permalink / raw)
To: steve-humphreys; +Cc: Help Gnu Emacs
> Is there a way to use the character "+" and "-" in regular expressions?
>
Yes, use character sets, e.g. [+] and [-]. If more characters are in a set
along with a hyphen, that hyphen needs to be the first element of the set
so as not to be interpreted as defining a range of characters. So, the
character set containing 0, 9 and hyphen is [-09] or [-90], not [0-9],
which would include all digits between 0 and 9, but not the hyphen.
Skip
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Use the characters "+" and "-" in regular expressions
2021-05-19 16:17 ` Skip Montanaro
@ 2021-05-19 16:26 ` steve-humphreys
2021-05-19 16:47 ` Yuri Khan
2021-05-19 19:25 ` Drew Adams
2021-05-19 16:27 ` tomas
1 sibling, 2 replies; 48+ messages in thread
From: steve-humphreys @ 2021-05-19 16:26 UTC (permalink / raw)
To: Skip Montanaro; +Cc: Help Gnu Emacs
I want to match a space followed by a series of "+" or "-" or "."
Sent: Thursday, May 20, 2021 at 4:17 AM
From: "Skip Montanaro" <skip.montanaro@gmail.com>
To: steve-humphreys@gmx.com
Cc: "Help Gnu Emacs" <help-gnu-emacs@gnu.org>
Subject: Re: Use the characters "+" and "-" in regular expressions
Is there a way to use the character "+" and "-" in regular
expressions?
Yes, use character sets, e.g. [+] and [-]. If more characters are in a
set along with a hyphen, that hyphen needs to be the first element of
the set so as not to be interpreted as defining a range of characters.
So, the character set containing 0, 9 and hyphen is [-09] or [-90], not
[0-9], which would include all digits between 0 and 9, but not the
hyphen.
Skip
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Use the characters "+" and "-" in regular expressions
2021-05-19 16:17 ` Skip Montanaro
2021-05-19 16:26 ` steve-humphreys
@ 2021-05-19 16:27 ` tomas
2021-05-19 16:39 ` Skip Montanaro
1 sibling, 1 reply; 48+ messages in thread
From: tomas @ 2021-05-19 16:27 UTC (permalink / raw)
To: Skip Montanaro; +Cc: Help Gnu Emacs, steve-humphreys
[-- Attachment #1: Type: text/plain, Size: 936 bytes --]
On Wed, May 19, 2021 at 11:17:34AM -0500, Skip Montanaro wrote:
> > Is there a way to use the character "+" and "-" in regular expressions?
Plus "+" is special. Minus "-" is not.
> Yes, use character sets, e.g. [+] and [-]. If more characters are in a set
> along with a hyphen, that hyphen needs to be the first element of the set
> so as not to be interpreted as defining a range of characters. So, the
> character set containing 0, 9 and hyphen is [-09] or [-90], not [0-9],
> which would include all digits between 0 and 9, but not the hyphen.
Or escape with backslash. Note that due to string syntax you need
two of them.
Besides, the '-' isn't a special character in regexps (except whithin
brackets), so your bracket trick is rather counter-productive. Just
use as-is (except in brackets, where it should, as you say, go last,
to distinguish it from a range marker).
(string-match "-" "Viala-du-Tarn")
=> 5
Cheers
- t
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Use the characters "+" and "-" in regular expressions
2021-05-19 16:27 ` tomas
@ 2021-05-19 16:39 ` Skip Montanaro
2021-05-19 17:43 ` Marcin Borkowski
2021-05-19 19:10 ` tomas
0 siblings, 2 replies; 48+ messages in thread
From: Skip Montanaro @ 2021-05-19 16:39 UTC (permalink / raw)
To: tomas; +Cc: Help Gnu Emacs, steve-humphreys
> > Yes, use character sets, e.g. [+] and [-].
> Plus "+" is special. Minus "-" is not.
...
> Or escape with backslash. Note that due to string syntax you need
> two of them.
Yes, correct you are, Tomas. I long ago got used to putting most
punctuation in character sets regardless of its specialness, if for no
other reason than to help them stand out when rereading the code
later. I also find backslashes ugly (especially within Lisp strings
where there is no such thing as a "raw" string such as in Python, so
you wind up doubling them). Also, by reflexively putting punctuation
in character sets I rarely have to remember which are special, or in
what contexts. For example, "$" is special at the end of a regular
expression, but not elsewhere. Similarly, "^" is special only at the
start. The various special cases just make it kind of tedious and easy
to get wrong. By placing punctuation in character sets you declare to
the reader, "This is not special, no matter what you might think."
Well, except for hyphens inside character sets. :) Still, that reduces
the special cases from N to 1.
Skip
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Use the characters "+" and "-" in regular expressions
2021-05-19 16:26 ` steve-humphreys
@ 2021-05-19 16:47 ` Yuri Khan
2021-05-19 17:39 ` steve-humphreys
2021-05-19 19:26 ` [External] : Re: Use the characters "+" and "-" in regular expressions Drew Adams
2021-05-19 19:25 ` Drew Adams
1 sibling, 2 replies; 48+ messages in thread
From: Yuri Khan @ 2021-05-19 16:47 UTC (permalink / raw)
To: steve-humphreys; +Cc: Skip Montanaro, Help Gnu Emacs
On Wed, 19 May 2021 at 23:26, <steve-humphreys@gmx.com> wrote:
>
> I want to match a space followed by a series of "+" or "-" or "."
You forgot to tell us what you tried, and how it doesn’t do what you want.
(You probably also forgot to read the manual chapters (info "(emacs)
Regexps") and (info "(elisp) Regular Expressions").)
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Use the characters "+" and "-" in regular expressions
2021-05-19 16:47 ` Yuri Khan
@ 2021-05-19 17:39 ` steve-humphreys
2021-05-19 19:16 ` tomas
2021-05-19 19:30 ` Yuri Khan
2021-05-19 19:26 ` [External] : Re: Use the characters "+" and "-" in regular expressions Drew Adams
1 sibling, 2 replies; 48+ messages in thread
From: steve-humphreys @ 2021-05-19 17:39 UTC (permalink / raw)
To: Yuri Khan; +Cc: Skip Montanaro, Help Gnu Emacs
I had tried
(string-match " [-\+\.]+" s)
> Sent: Thursday, May 20, 2021 at 4:47 AM
> From: "Yuri Khan" <yuri.v.khan@gmail.com>
> To: steve-humphreys@gmx.com
> Cc: "Skip Montanaro" <skip.montanaro@gmail.com>, "Help Gnu Emacs" <help-gnu-emacs@gnu.org>
> Subject: Re: Use the characters "+" and "-" in regular expressions
>
> On Wed, 19 May 2021 at 23:26, <steve-humphreys@gmx.com> wrote:
> >
> > I want to match a space followed by a series of "+" or "-" or "."
>
> You forgot to tell us what you tried, and how it doesn’t do what you want.
>
> (You probably also forgot to read the manual chapters (info "(emacs)
> Regexps") and (info "(elisp) Regular Expressions").)
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Use the characters "+" and "-" in regular expressions
2021-05-19 16:39 ` Skip Montanaro
@ 2021-05-19 17:43 ` Marcin Borkowski
2021-05-19 19:10 ` tomas
1 sibling, 0 replies; 48+ messages in thread
From: Marcin Borkowski @ 2021-05-19 17:43 UTC (permalink / raw)
To: Skip Montanaro; +Cc: Help Gnu Emacs, steve-humphreys
On 2021-05-19, at 18:39, Skip Montanaro <skip.montanaro@gmail.com> wrote:
>> > Yes, use character sets, e.g. [+] and [-].
>
>> Plus "+" is special. Minus "-" is not.
> ...
>> Or escape with backslash. Note that due to string syntax you need
>> two of them.
>
> Yes, correct you are, Tomas. I long ago got used to putting most
> punctuation in character sets regardless of its specialness, if for no
> other reason than to help them stand out when rereading the code
> later. I also find backslashes ugly (especially within Lisp strings
> where there is no such thing as a "raw" string such as in Python, so
> you wind up doubling them). Also, by reflexively putting punctuation
> in character sets I rarely have to remember which are special, or in
> what contexts. For example, "$" is special at the end of a regular
> expression, but not elsewhere. Similarly, "^" is special only at the
> start. The various special cases just make it kind of tedious and easy
> to get wrong. By placing punctuation in character sets you declare to
> the reader, "This is not special, no matter what you might think."
> Well, except for hyphens inside character sets. :) Still, that reduces
And except the caret right after the `['.
> the special cases from N to 1.
So, N to 2. (Still a win, though.)
Best,
--
Marcin Borkowski
http://mbork.pl
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Use the characters "+" and "-" in regular expressions
2021-05-19 16:39 ` Skip Montanaro
2021-05-19 17:43 ` Marcin Borkowski
@ 2021-05-19 19:10 ` tomas
1 sibling, 0 replies; 48+ messages in thread
From: tomas @ 2021-05-19 19:10 UTC (permalink / raw)
To: Skip Montanaro; +Cc: Help Gnu Emacs, steve-humphreys
[-- Attachment #1: Type: text/plain, Size: 788 bytes --]
On Wed, May 19, 2021 at 11:39:46AM -0500, Skip Montanaro wrote:
> > > Yes, use character sets, e.g. [+] and [-].
>
> > Plus "+" is special. Minus "-" is not.
> ...
> > Or escape with backslash. Note that due to string syntax you need
> > two of them.
>
> Yes, correct you are, Tomas. I long ago got used to putting most
> punctuation in character sets regardless of its specialness, if for no
> other reason than to help them stand out when rereading the code
> later [...]
Right: brackets help curbing the multiplication of backslashes.
I've found another strange application for that: "ps waux | grep foo"
will find your "grep foo" in the process list. Decorating one of your
characters in "foo" with brackets will fix that. Hacky, but it works :)
Cheers
- t
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Use the characters "+" and "-" in regular expressions
2021-05-19 17:39 ` steve-humphreys
@ 2021-05-19 19:16 ` tomas
2021-05-19 19:27 ` tomas
2021-05-19 19:30 ` Yuri Khan
1 sibling, 1 reply; 48+ messages in thread
From: tomas @ 2021-05-19 19:16 UTC (permalink / raw)
To: help-gnu-emacs
[-- Attachment #1: Type: text/plain, Size: 1058 bytes --]
On Wed, May 19, 2021 at 07:39:10PM +0200, steve-humphreys@gmx.com wrote:
> > Sent: Thursday, May 20, 2021 at 4:47 AM
> > From: "Yuri Khan" <yuri.v.khan@gmail.com>
> > To: steve-humphreys@gmx.com
> > Cc: "Skip Montanaro" <skip.montanaro@gmail.com>, "Help Gnu Emacs" <help-gnu-emacs@gnu.org>
> > Subject: Re: Use the characters "+" and "-" in regular expressions
> >
> > On Wed, 19 May 2021 at 23:26, <steve-humphreys@gmx.com> wrote:
> > >
> > > I want to match a space followed by a series of "+" or "-" or "."
> >
> > You forgot to tell us what you tried, and how it doesn’t do what you want.
> >
> > (You probably also forgot to read the manual chapters (info "(emacs)
> > Regexps") and (info "(elisp) Regular Expressions").)
> I had tried
>
> (string-match " [-\+\.]+" s)
But you forgot to read the manual, as Skip noted. Otherwise you would have
read that whithin the [], + and . are not special. Don't escape them.
But the - is special. Put it at the end.
So your bracket sub-expression should be [+.-].
Cheers
- t
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 48+ messages in thread
* RE: [External] : Use the characters "+" and "-" in regular expressions
2021-05-19 16:07 Use the characters "+" and "-" in regular expressions steve-humphreys
2021-05-19 16:17 ` Skip Montanaro
@ 2021-05-19 19:17 ` Drew Adams
1 sibling, 0 replies; 48+ messages in thread
From: Drew Adams @ 2021-05-19 19:17 UTC (permalink / raw)
To: steve-humphreys@gmx.com, Help Gnu Emacs
> Is there a way to use the character "+" and "-" in regular expressions?
Ask Emacs!
1. `C-h i' Choose Elisp manual.
2. `i regexp TAB', and complete to
`regexp, special characters in'
3. Read about `\':
it quotes the special characters
Because ‘\’ quotes special characters, ‘\$’ is a
regular expression that matches only ‘$’, and ‘\[’ is
a regular expression that matches only ‘[’, and so on.
IOW, `\+' and `\-' match (only) `+' and `-', respectively.
Another way to match special chars literally is to include
them in a character alternative, also described in the same
page of the manual.
`[+]' matches only `+', `[-]' matches only `+' or `-', and
`[-+]' and `[+-]' match either `+' or `-'.
Note too that `-' in a char alternative behaves specially:
To include a ‘-’, write ‘-’ as the first or last
character of the character alternative, or as the
upper bound of a range. Thus, ‘[]-]’ matches both
‘]’ and ‘-’.
In `[-+]' and `[+-]', the `-' is the first or last char in
the alternative.
^ permalink raw reply [flat|nested] 48+ messages in thread
* RE: [External] : Re: Use the characters "+" and "-" in regular expressions
2021-05-19 16:26 ` steve-humphreys
2021-05-19 16:47 ` Yuri Khan
@ 2021-05-19 19:25 ` Drew Adams
1 sibling, 0 replies; 48+ messages in thread
From: Drew Adams @ 2021-05-19 19:25 UTC (permalink / raw)
To: steve-humphreys@gmx.com, Skip Montanaro; +Cc: Help Gnu Emacs
>> Yes, use character sets, e.g. [+] and [-].
>
> I want to match a space followed by a series of "+" or "-" or "."
Yes, and? The answer is right above your question.
Do you mean a series of one or more or a series of
zero or more? (Or 42 or more or...?) Your problem
statements are piecemeal.
[-+.]* is zero or more. [-+.]+ is one or more.
As Tomas pointed out, you need not escape the `-'.
But it's easier if you do. If not, you need to group
the pattern that gets repeated:
\(-[+.]\)* is zero or more. \(-[+.]\)+ is one or more.
^ permalink raw reply [flat|nested] 48+ messages in thread
* RE: [External] : Re: Use the characters "+" and "-" in regular expressions
2021-05-19 16:47 ` Yuri Khan
2021-05-19 17:39 ` steve-humphreys
@ 2021-05-19 19:26 ` Drew Adams
1 sibling, 0 replies; 48+ messages in thread
From: Drew Adams @ 2021-05-19 19:26 UTC (permalink / raw)
To: Yuri Khan, steve-humphreys@gmx.com; +Cc: Skip Montanaro, Help Gnu Emacs
> You forgot to tell us what you tried, and how it doesn’t do what you
> want.
>
> (You probably also forgot to read the manual chapters (info "(emacs)
> Regexps") and (info "(elisp) Regular Expressions").)
+1.
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Use the characters "+" and "-" in regular expressions
2021-05-19 19:16 ` tomas
@ 2021-05-19 19:27 ` tomas
0 siblings, 0 replies; 48+ messages in thread
From: tomas @ 2021-05-19 19:27 UTC (permalink / raw)
To: help-gnu-emacs
[-- Attachment #1: Type: text/plain, Size: 359 bytes --]
On Wed, May 19, 2021 at 09:16:22PM +0200, tomas wrote:
> On Wed, May 19, 2021 at 07:39:10PM +0200, steve-humphreys@gmx.com wrote:
> > > Sent: Thursday, May 20, 2021 at 4:47 AM
> > > From: "Yuri Khan" <yuri.v.khan@gmail.com>
[...]
> But you forgot to read the manual, as Skip noted [...]
Ugh. "...as Yuri noted". Sorry for the mis-attribution.
Cheers
- t
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Use the characters "+" and "-" in regular expressions
2021-05-19 17:39 ` steve-humphreys
2021-05-19 19:16 ` tomas
@ 2021-05-19 19:30 ` Yuri Khan
2021-05-19 21:32 ` tomas
1 sibling, 1 reply; 48+ messages in thread
From: Yuri Khan @ 2021-05-19 19:30 UTC (permalink / raw)
To: steve-humphreys; +Cc: Skip Montanaro, Help Gnu Emacs
On Thu, 20 May 2021 at 00:39, <steve-humphreys@gmx.com> wrote:
>
> I had tried
>
> (string-match " [-\+\.]+" s)
This ought to work, even though you’re using backslashes incorrectly.
* + and . are not special inside a character class; you don’t need to
escape them.
* If you wanted to escape them in a regexp that is inside a string,
you should have put two backslashes.
* Escaping them with a single backslash only acts on the string syntax
level; because + and . are not special in a string, they pass through
as themselves so the regexp is the same as if you had written "
[-+.]+".
(string-match " [-+.]+" ";; ----")
⇒ 2
(string-match " [-+.]+" ";; ++++")
⇒ 2
(string-match " [-+.]+" ";; ....")
⇒ 2
(string-match " [-+.]+" ";; -+-+")
⇒ 2
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Use the characters "+" and "-" in regular expressions
2021-05-19 19:30 ` Yuri Khan
@ 2021-05-19 21:32 ` tomas
2021-05-19 21:59 ` [External] : " Drew Adams
0 siblings, 1 reply; 48+ messages in thread
From: tomas @ 2021-05-19 21:32 UTC (permalink / raw)
To: help-gnu-emacs
[-- Attachment #1: Type: text/plain, Size: 1072 bytes --]
On Thu, May 20, 2021 at 02:30:22AM +0700, Yuri Khan wrote:
> On Thu, 20 May 2021 at 00:39, <steve-humphreys@gmx.com> wrote:
> >
> > I had tried
> >
> > (string-match " [-\+\.]+" s)
>
> This ought to work, even though you’re using backslashes incorrectly.
Hm. According to the docs, the dash should go last, but a test
actually confirms that it works in first position.
OTOH, the regex(7) man page says "first or last" position. Since
the underlying lib is probably the same, I'd guess that this is
an omission in the Emacs doc.
> * + and . are not special inside a character class; you don’t need to
> escape them.
Exactly.
> * If you wanted to escape them in a regexp that is inside a string,
> you should have put two backslashes.
>
> * Escaping them with a single backslash only acts on the string syntax
> level; because + and . are not special in a string, they pass through
> as themselves so the regexp is the same as if you had written "
> [-+.]+".
So, as seen by the regexp they weren't escaped anyway ;-)
Cheers
- t
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 48+ messages in thread
* RE: [External] : Re: Use the characters "+" and "-" in regular expressions
2021-05-19 21:32 ` tomas
@ 2021-05-19 21:59 ` Drew Adams
2021-05-20 6:26 ` RE: [External] : " steve-humphreys
2021-05-20 7:15 ` Dash in regexp character classes: Beginnig vs. end [was: Use the characters "+" and "-" in regular expressions] tomas
0 siblings, 2 replies; 48+ messages in thread
From: Drew Adams @ 2021-05-19 21:59 UTC (permalink / raw)
To: tomas@tuxteam.de, help-gnu-emacs@gnu.org
> Hm. According to the docs, the dash should go last, but
> a test actually confirms that it works in first position.
I quoted this from (elisp) `Regexp Special':
To include a ‘-’, write ‘-’ as the first or last
^^^^^^^^^^^^^
character of the character alternative, or as the
upper bound of a range. Thus, ‘[]-]’ matches both
‘]’ and ‘-’.
That's from Emacs 26 (and all prior releases, at least
as far back as Emacs 20). But yes, they changed that
text for Emacs 27, to this:
To include ‘-’, put it at the end.
^^^^^^^^^^
___
For Emacs 20, it says this:
To include a `-', write `-' as the first or last
character of the character alternative, or put it
after a range. Thus, `[]-]' matches both `]' and
`-'.
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: RE: [External] : Use the characters "+" and "-" in regular expressions
2021-05-19 21:59 ` [External] : " Drew Adams
@ 2021-05-20 6:26 ` steve-humphreys
2021-05-20 7:59 ` steve-humphreys
2021-05-20 7:15 ` Dash in regexp character classes: Beginnig vs. end [was: Use the characters "+" and "-" in regular expressions] tomas
1 sibling, 1 reply; 48+ messages in thread
From: steve-humphreys @ 2021-05-20 6:26 UTC (permalink / raw)
To: Drew Adams; +Cc: help-gnu-emacs@gnu.org
Have done as follows but cannot see the result. Have read through
the table of valid format specifications, and the other options are
mostly about printing numbers.
(message " ")
(message "*** ***")
(setq s (string-match "[+]+" "++++++++++++++++"))
message("%s" s)
(setq s (string-match "[+-]+" "++++++++++++++++"))
message("%s" s)
(setq s (string-match "[+-]+" "----------------"))
message("%s" s)
> Sent: Thursday, May 20, 2021 at 9:59 AM
> From: "Drew Adams" <drew.adams@oracle.com>
> To: "tomas@tuxteam.de" <tomas@tuxteam.de>, "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> Subject: RE: [External] : Re: Use the characters "+" and "-" in regular expressions
>
> > Hm. According to the docs, the dash should go last, but
> > a test actually confirms that it works in first position.
>
> I quoted this from (elisp) `Regexp Special':
>
> To include a ‘-’, write ‘-’ as the first or last
> ^^^^^^^^^^^^^
> character of the character alternative, or as the
> upper bound of a range. Thus, ‘[]-]’ matches both
> ‘]’ and ‘-’.
>
> That's from Emacs 26 (and all prior releases, at least
> as far back as Emacs 20). But yes, they changed that
> text for Emacs 27, to this:
>
> To include ‘-’, put it at the end.
> ^^^^^^^^^^
> ___
>
> For Emacs 20, it says this:
>
> To include a `-', write `-' as the first or last
> character of the character alternative, or put it
> after a range. Thus, `[]-]' matches both `]' and
> `-'.
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Dash in regexp character classes: Beginnig vs. end [was: Use the characters "+" and "-" in regular expressions]
2021-05-19 21:59 ` [External] : " Drew Adams
2021-05-20 6:26 ` RE: [External] : " steve-humphreys
@ 2021-05-20 7:15 ` tomas
2021-05-20 8:08 ` Robert Pluim
1 sibling, 1 reply; 48+ messages in thread
From: tomas @ 2021-05-20 7:15 UTC (permalink / raw)
To: Drew Adams; +Cc: help-gnu-emacs@gnu.org
[-- Attachment #1: Type: text/plain, Size: 1041 bytes --]
On Wed, May 19, 2021 at 09:59:11PM +0000, Drew Adams wrote:
> > Hm. According to the docs, the dash should go last, but
> > a test actually confirms that it works in first position.
>
> I quoted this from (elisp) `Regexp Special':
>
> To include a ‘-’, write ‘-’ as the first or last
> ^^^^^^^^^^^^^
> character of the character alternative, or as the
> upper bound of a range. Thus, ‘[]-]’ matches both
> ‘]’ and ‘-’.
>
> That's from Emacs 26 (and all prior releases, at least
> as far back as Emacs 20). But yes, they changed that
> text for Emacs 27, to this:
>
> To include ‘-’, put it at the end.
> ^^^^^^^^^^
> ___
>
> For Emacs 20, it says this:
>
> To include a `-', write `-' as the first or last
> character of the character alternative, or put it
> after a range. Thus, `[]-]' matches both `]' and
> `-'.
Oh. That is interesting. Anyone knows why that change?
Cheers
- t
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 48+ messages in thread
* [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 6:26 ` RE: [External] : " steve-humphreys
@ 2021-05-20 7:59 ` steve-humphreys
2021-05-20 8:26 ` tomas
0 siblings, 1 reply; 48+ messages in thread
From: steve-humphreys @ 2021-05-20 7:59 UTC (permalink / raw)
To: steve-humphreys; +Cc: help-gnu-emacs@gnu.org
I wonder why I am getting
Symbol's value as variable is void: message
(message " ")
(message "*** ***")
(setq s (string-match "[+]+" "++++++++++++++++"))
message("%s" s)
(setq s (string-match "[+-]+" "++++++++++++++++"))
message("%s" s)
(setq s (string-match "[+-]+" "----------------"))
message("%s" s)
>
>
>
>
>
> > Sent: Thursday, May 20, 2021 at 9:59 AM
> > From: "Drew Adams" <drew.adams@oracle.com>
> > To: "tomas@tuxteam.de" <tomas@tuxteam.de>, "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> > Subject: RE: [External] : Re: Use the characters "+" and "-" in regular expressions
> >
> > > Hm. According to the docs, the dash should go last, but
> > > a test actually confirms that it works in first position.
> >
> > I quoted this from (elisp) `Regexp Special':
> >
> > To include a ‘-’, write ‘-’ as the first or last
> > ^^^^^^^^^^^^^
> > character of the character alternative, or as the
> > upper bound of a range. Thus, ‘[]-]’ matches both
> > ‘]’ and ‘-’.
> >
> > That's from Emacs 26 (and all prior releases, at least
> > as far back as Emacs 20). But yes, they changed that
> > text for Emacs 27, to this:
> >
> > To include ‘-’, put it at the end.
> > ^^^^^^^^^^
> > ___
> >
> > For Emacs 20, it says this:
> >
> > To include a `-', write `-' as the first or last
> > character of the character alternative, or put it
> > after a range. Thus, `[]-]' matches both `]' and
> > `-'.
> >
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Dash in regexp character classes: Beginnig vs. end [was: Use the characters "+" and "-" in regular expressions]
2021-05-20 7:15 ` Dash in regexp character classes: Beginnig vs. end [was: Use the characters "+" and "-" in regular expressions] tomas
@ 2021-05-20 8:08 ` Robert Pluim
0 siblings, 0 replies; 48+ messages in thread
From: Robert Pluim @ 2021-05-20 8:08 UTC (permalink / raw)
To: tomas; +Cc: help-gnu-emacs@gnu.org
>>>>> On Thu, 20 May 2021 09:15:29 +0200, "tomas@tuxteam.de" <tomas@tuxteam.de> said:
>> I quoted this from (elisp) `Regexp Special':
>>
>> To include a ‘-’, write ‘-’ as the first or last
>> ^^^^^^^^^^^^^
>> character of the character alternative, or as the
>> upper bound of a range. Thus, ‘[]-]’ matches both
>> ‘]’ and ‘-’.
>>
>> That's from Emacs 26 (and all prior releases, at least
>> as far back as Emacs 20). But yes, they changed that
>> text for Emacs 27, to this:
>>
>> To include ‘-’, put it at the end.
>> ^^^^^^^^^^
>> ___
>>
>> For Emacs 20, it says this:
>>
>> To include a `-', write `-' as the first or last
>> character of the character alternative, or put it
>> after a range. Thus, `[]-]' matches both `]' and
>> `-'.
tomas@tuxteam> Oh. That is interesting. Anyone knows why that change?
It makes the description and usage simpler and more regular, and less
error-prone.
Since I never remember the rules for this stuff anyway, I do this
instead:
(rx (or ?- ?+ ?.))
=> "[+.-]"
but of course parenthesis-like characters still need to be escaped:
(rx (or ?\) ?\] ?-))
=> "[])-]"
Robert
--
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 7:59 ` steve-humphreys
@ 2021-05-20 8:26 ` tomas
2021-05-20 8:41 ` steve-humphreys
2021-05-20 9:42 ` steve-humphreys
0 siblings, 2 replies; 48+ messages in thread
From: tomas @ 2021-05-20 8:26 UTC (permalink / raw)
To: steve-humphreys; +Cc: help-gnu-emacs@gnu.org
[-- Attachment #1: Type: text/plain, Size: 627 bytes --]
On Thu, May 20, 2021 at 09:59:59AM +0200, steve-humphreys@gmx.com wrote:
> I wonder why I am getting
>
> Symbol's value as variable is void: message
Because you are using it as a variable down there:
>
> (message " ")
> (message "*** ***")
> (setq s (string-match "[+]+" "++++++++++++++++"))
> message("%s" s)
^^^ HERE
> (setq s (string-match "[+-]+" "++++++++++++++++"))
> message("%s" s)
> (setq s (string-match "[+-]+" "----------------"))
> message("%s" s)
^^^ AND HERE
Now *STOP*.
Think about it. How could you have debugged it yourself?
That's the only way to improve.
Cheers
- t
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 8:26 ` tomas
@ 2021-05-20 8:41 ` steve-humphreys
2021-05-20 9:42 ` steve-humphreys
1 sibling, 0 replies; 48+ messages in thread
From: steve-humphreys @ 2021-05-20 8:41 UTC (permalink / raw)
To: tomas; +Cc: help-gnu-emacs@gnu.org
You are right. Have got it now, thanks.
> Sent: Thursday, May 20, 2021 at 8:26 PM
> From: tomas@tuxteam.de
> To: steve-humphreys@gmx.com
> Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> Subject: Re: [External] : Use the characters "+" and "-" in regular expressions
>
> On Thu, May 20, 2021 at 09:59:59AM +0200, steve-humphreys@gmx.com wrote:
> > I wonder why I am getting
> >
> > Symbol's value as variable is void: message
>
> Because you are using it as a variable down there:
> >
> > (message " ")
> > (message "*** ***")
> > (setq s (string-match "[+]+" "++++++++++++++++"))
> > message("%s" s)
> ^^^ HERE
> > (setq s (string-match "[+-]+" "++++++++++++++++"))
> > message("%s" s)
> > (setq s (string-match "[+-]+" "----------------"))
> > message("%s" s)
> ^^^ AND HERE
>
> Now *STOP*.
>
> Think about it. How could you have debugged it yourself?
>
> That's the only way to improve.
>
> Cheers
> - t
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 8:26 ` tomas
2021-05-20 8:41 ` steve-humphreys
@ 2021-05-20 9:42 ` steve-humphreys
2021-05-20 9:56 ` tomas
2021-05-20 12:39 ` Jean Louis
1 sibling, 2 replies; 48+ messages in thread
From: steve-humphreys @ 2021-05-20 9:42 UTC (permalink / raw)
To: tomas; +Cc: help-gnu-emacs@gnu.org
I have now used ";; [;+-.]+" to match some specific lines.
(string-match ";; [;+-.]+" s")
How could I negate the regexp that I have defined?
> Sent: Thursday, May 20, 2021 at 8:26 PM
> From: tomas@tuxteam.de
> To: steve-humphreys@gmx.com
> Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> Subject: Re: [External] : Use the characters "+" and "-" in regular expressions
>
> On Thu, May 20, 2021 at 09:59:59AM +0200, steve-humphreys@gmx.com wrote:
> > I wonder why I am getting
> >
> > Symbol's value as variable is void: message
>
> Because you are using it as a variable down there:
> >
> > (message " ")
> > (message "*** ***")
> > (setq s (string-match "[+]+" "++++++++++++++++"))
> > message("%s" s)
> ^^^ HERE
> > (setq s (string-match "[+-]+" "++++++++++++++++"))
> > message("%s" s)
> > (setq s (string-match "[+-]+" "----------------"))
> > message("%s" s)
> ^^^ AND HERE
>
> Now *STOP*.
>
> Think about it. How could you have debugged it yourself?
>
> That's the only way to improve.
>
> Cheers
> - t
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 9:42 ` steve-humphreys
@ 2021-05-20 9:56 ` tomas
2021-05-20 10:11 ` steve-humphreys
2021-05-20 12:39 ` Jean Louis
1 sibling, 1 reply; 48+ messages in thread
From: tomas @ 2021-05-20 9:56 UTC (permalink / raw)
To: steve-humphreys; +Cc: help-gnu-emacs@gnu.org
[-- Attachment #1: Type: text/plain, Size: 742 bytes --]
On Thu, May 20, 2021 at 11:42:58AM +0200, steve-humphreys@gmx.com wrote:
> I have now used ";; [;+-.]+" to match some specific lines.
>
> (string-match ";; [;+-.]+" s")
^ NOOOO!
This is a dash in the middle, indicating a range (i.e. "match all
characters in the range "+" to "."). In ASCII (and by extension,
in UTF-8), these are "+", ",", "-" and ".".
So this will match...
(string-match "[+-.]" "Folks, let's go!")
=> 5
... the comma!
This is the whole discussion we've had just yesterday and today.
I'm a bit confused: you seem to have ignored it totally.
> How could I negate the regexp that I have defined?
I don't even know what you mean by "negating a regexp".
Cheers
- t
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 9:56 ` tomas
@ 2021-05-20 10:11 ` steve-humphreys
2021-05-20 10:22 ` tomas
0 siblings, 1 reply; 48+ messages in thread
From: steve-humphreys @ 2021-05-20 10:11 UTC (permalink / raw)
To: tomas; +Cc: help-gnu-emacs@gnu.org
> Sent: Thursday, May 20, 2021 at 9:56 PM
> From: tomas@tuxteam.de
> To: steve-humphreys@gmx.com
> Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> Subject: Re: [External] : Use the characters "+" and "-" in regular expressions
>
> On Thu, May 20, 2021 at 11:42:58AM +0200, steve-humphreys@gmx.com wrote:
> > I have now used ";; [;+-.]+" to match some specific lines.
> >
> > (string-match ";; [;+-.]+" s")
> ^ NOOOO!
>
> This is a dash in the middle, indicating a range (i.e. "match all
> characters in the range "+" to "."). In ASCII (and by extension,
> in UTF-8), these are "+", ",", "-" and ".".
I thought it was only about numeric and letter ranges only.
> So this will match...
>
> (string-match "[+-.]" "Folks, let's go!")
> => 5
>
> ... the comma!
>
> This is the whole discussion we've had just yesterday and today.
> I'm a bit confused: you seem to have ignored it totally.
>
> > How could I negate the regexp that I have defined?
>
> I don't even know what you mean by "negating a regexp".
>
> Cheers
> - t
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 10:11 ` steve-humphreys
@ 2021-05-20 10:22 ` tomas
2021-05-20 10:37 ` steve-humphreys
0 siblings, 1 reply; 48+ messages in thread
From: tomas @ 2021-05-20 10:22 UTC (permalink / raw)
To: steve-humphreys; +Cc: help-gnu-emacs@gnu.org
[-- Attachment #1: Type: text/plain, Size: 1397 bytes --]
On Thu, May 20, 2021 at 12:11:49PM +0200, steve-humphreys@gmx.com wrote:
>
>
> > Sent: Thursday, May 20, 2021 at 9:56 PM
> > From: tomas@tuxteam.de
> > To: steve-humphreys@gmx.com
> > Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> > Subject: Re: [External] : Use the characters "+" and "-" in regular expressions
> >
> > On Thu, May 20, 2021 at 11:42:58AM +0200, steve-humphreys@gmx.com wrote:
> > > I have now used ";; [;+-.]+" to match some specific lines.
> > >
> > > (string-match ";; [;+-.]+" s")
> > ^ NOOOO!
> >
> > This is a dash in the middle, indicating a range (i.e. "match all
> > characters in the range "+" to "."). In ASCII (and by extension,
> > in UTF-8), these are "+", ",", "-" and ".".
>
> I thought it was only about numeric and letter ranges only.
No. Any characters can be the endpoints of a range. But this is
somewhat dangerous, since, strictly speaking, the results might
depend on the character encoding. Nowadays, with ubiquitous Unicode,
this is less of a problem. In the context of Emacs, which probably
always uses its internal set (a superset of Unicode), results are
probably always consistent.
That doesn't mean they are always intuitive. Quick: is "d" in
the range "[(-{]"?
Don't do that. Your reader will thank you.
Again: please, play with it. Make yourself test cases.
Cheers
- t
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 10:22 ` tomas
@ 2021-05-20 10:37 ` steve-humphreys
2021-05-20 10:50 ` tomas
2021-05-20 12:46 ` Jean Louis
0 siblings, 2 replies; 48+ messages in thread
From: steve-humphreys @ 2021-05-20 10:37 UTC (permalink / raw)
To: tomas; +Cc: help-gnu-emacs@gnu.org
> Sent: Thursday, May 20, 2021 at 10:22 PM
> From: tomas@tuxteam.de
> To: steve-humphreys@gmx.com
> Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> Subject: Re: [External] : Use the characters "+" and "-" in regular expressions
>
> On Thu, May 20, 2021 at 12:11:49PM +0200, steve-humphreys@gmx.com wrote:
> >
> >
> > > Sent: Thursday, May 20, 2021 at 9:56 PM
> > > From: tomas@tuxteam.de
> > > To: steve-humphreys@gmx.com
> > > Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> > > Subject: Re: [External] : Use the characters "+" and "-" in regular expressions
> > >
> > > On Thu, May 20, 2021 at 11:42:58AM +0200, steve-humphreys@gmx.com wrote:
> > > > I have now used ";; [;+-.]+" to match some specific lines.
> > > >
> > > > (string-match ";; [;+-.]+" s")
> > > ^ NOOOO!
> > >
> > > This is a dash in the middle, indicating a range (i.e. "match all
> > > characters in the range "+" to "."). In ASCII (and by extension,
> > > in UTF-8), these are "+", ",", "-" and ".".
> >
> > I thought it was only about numeric and letter ranges only.
>
> No. Any characters can be the endpoints of a range. But this is
> somewhat dangerous, since, strictly speaking, the results might
> depend on the character encoding. Nowadays, with ubiquitous Unicode,
> this is less of a problem. In the context of Emacs, which probably
> always uses its internal set (a superset of Unicode), results are
> probably always consistent.
>
> That doesn't mean they are always intuitive. Quick: is "d" in
> the range "[(-{]"?
>
> Don't do that. Your reader will thank you.
>
> Again: please, play with it. Make yourself test cases.
Done some tests and got some strange results that thought would not match. Then things
made more sense after your clarification because when I looked at some of the strings,
there was a comma in them.
Am seeing how to match strings of blank lines
But " +" does not do the job. I know why, but how can one match strings of blanks?
> Cheers
> - t
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 10:37 ` steve-humphreys
@ 2021-05-20 10:50 ` tomas
2021-05-20 11:19 ` steve-humphreys
2021-05-20 12:46 ` Jean Louis
1 sibling, 1 reply; 48+ messages in thread
From: tomas @ 2021-05-20 10:50 UTC (permalink / raw)
To: steve-humphreys; +Cc: help-gnu-emacs@gnu.org
[-- Attachment #1: Type: text/plain, Size: 1465 bytes --]
On Thu, May 20, 2021 at 12:37:17PM +0200, steve-humphreys@gmx.com wrote:
[...]
> Done some tests and got some strange results that thought would not match. Then things
> made more sense after your clarification because when I looked at some of the strings,
> there was a comma in them.
OK. Glad I could help.
> Am seeing how to match strings of blank lines
What is "a string of blank lines"?
I know strings of characters. But a line is not a character.
Do you mean "several blank lines next to each other"? I don't
think so. But what do you mean?
> But " +" does not do the job.
Again: you know by now that this will match "one or more spaces". Is
that for you a "string of blanks" (huh: where did you leave the
"line" from above?) or not?
> I know why, but how can one match strings of blanks?
To even have a chance to do that, you'll have to get hold of a more
or less precise idea of what "a string of blanks" is. This is work.
Begin with:
(string-match " +" "A summer full of butterflies")
=> 1
Bingo: the first run of one-or-more spaces is at the position 1
(the first position in the string is 0, the "A"). So it's working
as it should.
So what is /your/ idea of "a string of blank lines" or "a string
of blanks"? Only you can find out.
If you feel you are stuck in that task, it sometimes help to collect
a couple of examples and counter-examples (they'll come in handy
when you try to test your attempts).
Cheers
- t
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 10:50 ` tomas
@ 2021-05-20 11:19 ` steve-humphreys
2021-05-20 11:27 ` steve-humphreys
2021-05-20 11:31 ` Christopher Dimech
0 siblings, 2 replies; 48+ messages in thread
From: steve-humphreys @ 2021-05-20 11:19 UTC (permalink / raw)
To: tomas; +Cc: help-gnu-emacs@gnu.org
This is a string of blanks, a string composed of whitespace of any length.
" "
> Sent: Thursday, May 20, 2021 at 10:50 PM
> From: tomas@tuxteam.de
> To: steve-humphreys@gmx.com
> Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> Subject: Re: [External] : Use the characters "+" and "-" in regular expressions
>
> On Thu, May 20, 2021 at 12:37:17PM +0200, steve-humphreys@gmx.com wrote:
>
> [...]
>
> > Done some tests and got some strange results that thought would not match. Then things
> > made more sense after your clarification because when I looked at some of the strings,
> > there was a comma in them.
>
> OK. Glad I could help.
>
> > Am seeing how to match strings of blank lines
>
> What is "a string of blank lines"?
>
> I know strings of characters. But a line is not a character.
>
> Do you mean "several blank lines next to each other"? I don't
> think so. But what do you mean?
>
> > But " +" does not do the job.
>
> Again: you know by now that this will match "one or more spaces". Is
> that for you a "string of blanks" (huh: where did you leave the
> "line" from above?) or not?
>
> > I know why, but how can one match strings of blanks?
>
> To even have a chance to do that, you'll have to get hold of a more
> or less precise idea of what "a string of blanks" is. This is work.
>
> Begin with:
>
> (string-match " +" "A summer full of butterflies")
> => 1
>
> Bingo: the first run of one-or-more spaces is at the position 1
> (the first position in the string is 0, the "A"). So it's working
> as it should.
>
> So what is /your/ idea of "a string of blank lines" or "a string
> of blanks"? Only you can find out.
>
> If you feel you are stuck in that task, it sometimes help to collect
> a couple of examples and counter-examples (they'll come in handy
> when you try to test your attempts).
>
> Cheers
> - t
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 11:19 ` steve-humphreys
@ 2021-05-20 11:27 ` steve-humphreys
2021-05-20 12:04 ` tomas
2021-05-20 11:31 ` Christopher Dimech
1 sibling, 1 reply; 48+ messages in thread
From: steve-humphreys @ 2021-05-20 11:27 UTC (permalink / raw)
To: steve-humphreys; +Cc: help-gnu-emacs@gnu.org
> This is a string of blanks, a string composed of whitespace of any length.
>
> " "
The above is what I meant, my gwx mail system is horse manure.
> Sent: Thursday, May 20, 2021 at 11:19 PM
> From: steve-humphreys@gmx.com
> To: tomas@tuxteam.de
> Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> Subject: Re: [External] : Use the characters "+" and "-" in regular expressions
>
> This is a string of blanks, a string composed of whitespace of any length.
>
> " "
>
>
>
> > Sent: Thursday, May 20, 2021 at 10:50 PM
> > From: tomas@tuxteam.de
> > To: steve-humphreys@gmx.com
> > Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> > Subject: Re: [External] : Use the characters "+" and "-" in regular expressions
> >
> > On Thu, May 20, 2021 at 12:37:17PM +0200, steve-humphreys@gmx.com wrote:
> >
> > [...]
> >
> > > Done some tests and got some strange results that thought would not match. Then things
> > > made more sense after your clarification because when I looked at some of the strings,
> > > there was a comma in them.
> >
> > OK. Glad I could help.
> >
> > > Am seeing how to match strings of blank lines
> >
> > What is "a string of blank lines"?
> >
> > I know strings of characters. But a line is not a character.
> >
> > Do you mean "several blank lines next to each other"? I don't
> > think so. But what do you mean?
> >
> > > But " +" does not do the job.
> >
> > Again: you know by now that this will match "one or more spaces". Is
> > that for you a "string of blanks" (huh: where did you leave the
> > "line" from above?) or not?
> >
> > > I know why, but how can one match strings of blanks?
> >
> > To even have a chance to do that, you'll have to get hold of a more
> > or less precise idea of what "a string of blanks" is. This is work.
> >
> > Begin with:
> >
> > (string-match " +" "A summer full of butterflies")
> > => 1
> >
> > Bingo: the first run of one-or-more spaces is at the position 1
> > (the first position in the string is 0, the "A"). So it's working
> > as it should.
> >
> > So what is /your/ idea of "a string of blank lines" or "a string
> > of blanks"? Only you can find out.
> >
> > If you feel you are stuck in that task, it sometimes help to collect
> > a couple of examples and counter-examples (they'll come in handy
> > when you try to test your attempts).
> >
> > Cheers
> > - t
> >
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 11:19 ` steve-humphreys
2021-05-20 11:27 ` steve-humphreys
@ 2021-05-20 11:31 ` Christopher Dimech
2021-05-20 11:40 ` steve-humphreys
` (2 more replies)
1 sibling, 3 replies; 48+ messages in thread
From: Christopher Dimech @ 2021-05-20 11:31 UTC (permalink / raw)
To: steve-humphreys; +Cc: help-gnu-emacs@gnu.org
This could be what you need
(string-match "[\s]+ " s)
Matches any white-space character.
> Sent: Thursday, May 20, 2021 at 11:19 PM
> From: steve-humphreys@gmx.com
> To: tomas@tuxteam.de
> Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> Subject: Re: [External] : Use the characters "+" and "-" in regular expressions
>
> This is a string of blanks, a string composed of whitespace of any length.
>
> " "
>
>
>
> > Sent: Thursday, May 20, 2021 at 10:50 PM
> > From: tomas@tuxteam.de
> > To: steve-humphreys@gmx.com
> > Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> > Subject: Re: [External] : Use the characters "+" and "-" in regular expressions
> >
> > On Thu, May 20, 2021 at 12:37:17PM +0200, steve-humphreys@gmx.com wrote:
> >
> > [...]
> >
> > > Done some tests and got some strange results that thought would not match. Then things
> > > made more sense after your clarification because when I looked at some of the strings,
> > > there was a comma in them.
> >
> > OK. Glad I could help.
> >
> > > Am seeing how to match strings of blank lines
> >
> > What is "a string of blank lines"?
> >
> > I know strings of characters. But a line is not a character.
> >
> > Do you mean "several blank lines next to each other"? I don't
> > think so. But what do you mean?
> >
> > > But " +" does not do the job.
> >
> > Again: you know by now that this will match "one or more spaces". Is
> > that for you a "string of blanks" (huh: where did you leave the
> > "line" from above?) or not?
> >
> > > I know why, but how can one match strings of blanks?
> >
> > To even have a chance to do that, you'll have to get hold of a more
> > or less precise idea of what "a string of blanks" is. This is work.
> >
> > Begin with:
> >
> > (string-match " +" "A summer full of butterflies")
> > => 1
> >
> > Bingo: the first run of one-or-more spaces is at the position 1
> > (the first position in the string is 0, the "A"). So it's working
> > as it should.
> >
> > So what is /your/ idea of "a string of blank lines" or "a string
> > of blanks"? Only you can find out.
> >
> > If you feel you are stuck in that task, it sometimes help to collect
> > a couple of examples and counter-examples (they'll come in handy
> > when you try to test your attempts).
> >
> > Cheers
> > - t
> >
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 11:31 ` Christopher Dimech
@ 2021-05-20 11:40 ` steve-humphreys
2021-05-20 11:49 ` Christopher Dimech
2021-05-20 13:03 ` Jean Louis
2021-05-20 11:59 ` tomas
2021-05-20 12:53 ` Jean Louis
2 siblings, 2 replies; 48+ messages in thread
From: steve-humphreys @ 2021-05-20 11:40 UTC (permalink / raw)
To: Christopher Dimech; +Cc: help-gnu-emacs@gnu.org
> Sent: Thursday, May 20, 2021 at 11:31 PM
> From: "Christopher Dimech" <dimech@gmx.com>
> To: steve-humphreys@gmx.com
> Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> Subject: [External] : Use the characters "+" and "-" in regular expressions
>
> This could be what you need
>
> (string-match "[\s]+ " s)
>
> Matches any white-space character.
That would actually match a sentence, which I don't want.
What I like to match is a string composed only of whitespace.
> > Sent: Thursday, May 20, 2021 at 11:19 PM
> > From: steve-humphreys@gmx.com
> > To: tomas@tuxteam.de
> > Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> > Subject: Re: [External] : Use the characters "+" and "-" in regular expressions
> >
> > This is a string of blanks, a string composed of whitespace of any length.
> >
> > " "
> >
> >
> >
> > > Sent: Thursday, May 20, 2021 at 10:50 PM
> > > From: tomas@tuxteam.de
> > > To: steve-humphreys@gmx.com
> > > Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> > > Subject: Re: [External] : Use the characters "+" and "-" in regular expressions
> > >
> > > On Thu, May 20, 2021 at 12:37:17PM +0200, steve-humphreys@gmx.com wrote:
> > >
> > > [...]
> > >
> > > > Done some tests and got some strange results that thought would not match. Then things
> > > > made more sense after your clarification because when I looked at some of the strings,
> > > > there was a comma in them.
> > >
> > > OK. Glad I could help.
> > >
> > > > Am seeing how to match strings of blank lines
> > >
> > > What is "a string of blank lines"?
> > >
> > > I know strings of characters. But a line is not a character.
> > >
> > > Do you mean "several blank lines next to each other"? I don't
> > > think so. But what do you mean?
> > >
> > > > But " +" does not do the job.
> > >
> > > Again: you know by now that this will match "one or more spaces". Is
> > > that for you a "string of blanks" (huh: where did you leave the
> > > "line" from above?) or not?
> > >
> > > > I know why, but how can one match strings of blanks?
> > >
> > > To even have a chance to do that, you'll have to get hold of a more
> > > or less precise idea of what "a string of blanks" is. This is work.
> > >
> > > Begin with:
> > >
> > > (string-match " +" "A summer full of butterflies")
> > > => 1
> > >
> > > Bingo: the first run of one-or-more spaces is at the position 1
> > > (the first position in the string is 0, the "A"). So it's working
> > > as it should.
> > >
> > > So what is /your/ idea of "a string of blank lines" or "a string
> > > of blanks"? Only you can find out.
> > >
> > > If you feel you are stuck in that task, it sometimes help to collect
> > > a couple of examples and counter-examples (they'll come in handy
> > > when you try to test your attempts).
> > >
> > > Cheers
> > > - t
> > >
> >
> >
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 11:40 ` steve-humphreys
@ 2021-05-20 11:49 ` Christopher Dimech
2021-05-20 13:03 ` Jean Louis
1 sibling, 0 replies; 48+ messages in thread
From: Christopher Dimech @ 2021-05-20 11:49 UTC (permalink / raw)
To: steve-humphreys; +Cc: help-gnu-emacs@gnu.org
Try this one instead, which should match strings containing 0 or more whitespace characters.
(string-match "^[\s]*$" s)
> Sent: Thursday, May 20, 2021 at 11:40 PM
> From: steve-humphreys@gmx.com
> To: "Christopher Dimech" <dimech@gmx.com>
> Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> Subject: [External] : Use the characters "+" and "-" in regular expressions
>
>
>
> > Sent: Thursday, May 20, 2021 at 11:31 PM
> > From: "Christopher Dimech" <dimech@gmx.com>
> > To: steve-humphreys@gmx.com
> > Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> > Subject: [External] : Use the characters "+" and "-" in regular expressions
> >
> > This could be what you need
> >
> > (string-match "[\s]+ " s)
> >
> > Matches any white-space character.
>
> That would actually match a sentence, which I don't want.
>
> What I like to match is a string composed only of whitespace.
>
> > > Sent: Thursday, May 20, 2021 at 11:19 PM
> > > From: steve-humphreys@gmx.com
> > > To: tomas@tuxteam.de
> > > Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> > > Subject: Re: [External] : Use the characters "+" and "-" in regular expressions
> > >
> > > This is a string of blanks, a string composed of whitespace of any length.
> > >
> > > " "
> > >
> > >
> > >
> > > > Sent: Thursday, May 20, 2021 at 10:50 PM
> > > > From: tomas@tuxteam.de
> > > > To: steve-humphreys@gmx.com
> > > > Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> > > > Subject: Re: [External] : Use the characters "+" and "-" in regular expressions
> > > >
> > > > On Thu, May 20, 2021 at 12:37:17PM +0200, steve-humphreys@gmx.com wrote:
> > > >
> > > > [...]
> > > >
> > > > > Done some tests and got some strange results that thought would not match. Then things
> > > > > made more sense after your clarification because when I looked at some of the strings,
> > > > > there was a comma in them.
> > > >
> > > > OK. Glad I could help.
> > > >
> > > > > Am seeing how to match strings of blank lines
> > > >
> > > > What is "a string of blank lines"?
> > > >
> > > > I know strings of characters. But a line is not a character.
> > > >
> > > > Do you mean "several blank lines next to each other"? I don't
> > > > think so. But what do you mean?
> > > >
> > > > > But " +" does not do the job.
> > > >
> > > > Again: you know by now that this will match "one or more spaces". Is
> > > > that for you a "string of blanks" (huh: where did you leave the
> > > > "line" from above?) or not?
> > > >
> > > > > I know why, but how can one match strings of blanks?
> > > >
> > > > To even have a chance to do that, you'll have to get hold of a more
> > > > or less precise idea of what "a string of blanks" is. This is work.
> > > >
> > > > Begin with:
> > > >
> > > > (string-match " +" "A summer full of butterflies")
> > > > => 1
> > > >
> > > > Bingo: the first run of one-or-more spaces is at the position 1
> > > > (the first position in the string is 0, the "A"). So it's working
> > > > as it should.
> > > >
> > > > So what is /your/ idea of "a string of blank lines" or "a string
> > > > of blanks"? Only you can find out.
> > > >
> > > > If you feel you are stuck in that task, it sometimes help to collect
> > > > a couple of examples and counter-examples (they'll come in handy
> > > > when you try to test your attempts).
> > > >
> > > > Cheers
> > > > - t
> > > >
> > >
> > >
> >
> >
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 11:31 ` Christopher Dimech
2021-05-20 11:40 ` steve-humphreys
@ 2021-05-20 11:59 ` tomas
2021-05-20 12:53 ` Jean Louis
2 siblings, 0 replies; 48+ messages in thread
From: tomas @ 2021-05-20 11:59 UTC (permalink / raw)
To: Christopher Dimech; +Cc: help-gnu-emacs@gnu.org, steve-humphreys
[-- Attachment #1: Type: text/plain, Size: 658 bytes --]
On Thu, May 20, 2021 at 01:31:22PM +0200, Christopher Dimech wrote:
> This could be what you need
>
> (string-match "[\s]+ " s)
You know that you can say " " instead of "\s", right? This is because,
in string literal syntax, "\s" is special and replaced by a space
(analog to "\n", "\r" and friends). This has nothing to do with
regexps: the regexp engine gets to see the " ".
So it's the same as "[ ]+ ".
This is a row of one or more spaces, followed by a space -- which is
the same as a row of two or more spaces, which can be also written
" \\{2\\}" (remember: one backslash for the Lisp string, one for the
regexp).
Cheers
- t
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 11:27 ` steve-humphreys
@ 2021-05-20 12:04 ` tomas
0 siblings, 0 replies; 48+ messages in thread
From: tomas @ 2021-05-20 12:04 UTC (permalink / raw)
To: steve-humphreys; +Cc: help-gnu-emacs@gnu.org
[-- Attachment #1: Type: text/plain, Size: 543 bytes --]
On Thu, May 20, 2021 at 01:27:19PM +0200, steve-humphreys@gmx.com wrote:
> > This is a string of blanks, a string composed of whitespace of any length.
> >
> > " "
>
> The above is what I meant, my gwx mail system is horse manure.
Exactly 21 spaces? (I don't think so). Does one space count? Two?
Context: Do you want to find the " " after the "a" in the following
example: "This is a sentence with holes"? What about the single " "
after "This"?
Still some thinking for you to do :-)
Cheers
- t
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 9:42 ` steve-humphreys
2021-05-20 9:56 ` tomas
@ 2021-05-20 12:39 ` Jean Louis
1 sibling, 0 replies; 48+ messages in thread
From: Jean Louis @ 2021-05-20 12:39 UTC (permalink / raw)
To: steve-humphreys; +Cc: help-gnu-emacs@gnu.org
* steve-humphreys@gmx.com <steve-humphreys@gmx.com> [2021-05-20 12:43]:
> I have now used ";; [;+-.]+" to match some specific lines.
>
> (string-match ";; [;+-.]+" s")
>
> How could I negate the regexp that I have defined?
Why not use not?
--
Jean
Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns
Sign an open letter in support of Richard M. Stallman
https://stallmansupport.org/
https://rms-support-letter.github.io/
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 10:37 ` steve-humphreys
2021-05-20 10:50 ` tomas
@ 2021-05-20 12:46 ` Jean Louis
2021-05-20 13:55 ` steve-humphreys
1 sibling, 1 reply; 48+ messages in thread
From: Jean Louis @ 2021-05-20 12:46 UTC (permalink / raw)
To: steve-humphreys; +Cc: help-gnu-emacs@gnu.org
* steve-humphreys@gmx.com <steve-humphreys@gmx.com> [2021-05-20 13:41]:
> Am seeing how to match strings of blank lines
>
> But " +" does not do the job. I know why, but how can one match strings of blanks?
[:blank:] is series of characters for that:
(string-match "[[:blank:]]" " ") ⇒ 0
Match new lines as blanks:
(string-match "[[:blank:]]" "
") ⇒ 0
There can be many various spaces, like EM SPACE: " "
Thus this will not work on EM SPACE:
(string-match " +" " ") ⇒ nil
But this will work:
(string-match "[[:blank:]]" " ") ⇒ 0
--
Jean
Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns
Sign an open letter in support of Richard M. Stallman
https://stallmansupport.org/
https://rms-support-letter.github.io/
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 11:31 ` Christopher Dimech
2021-05-20 11:40 ` steve-humphreys
2021-05-20 11:59 ` tomas
@ 2021-05-20 12:53 ` Jean Louis
2 siblings, 0 replies; 48+ messages in thread
From: Jean Louis @ 2021-05-20 12:53 UTC (permalink / raw)
To: Christopher Dimech; +Cc: help-gnu-emacs@gnu.org, steve-humphreys
* Christopher Dimech <dimech@gmx.com> [2021-05-20 14:32]:
> This could be what you need
>
> (string-match "[\s]+ " s)
>
> Matches any white-space character.
Why space after plus?
From manual:
"Whitespace characters such as space, tab, newline and formfeed..."
So this does not match new line:
(string-match "[\s]+" "
") ⇒ nil
Neither TAB or FORM FEED:
(string-match "[\s]+" " ") ⇒ nil
(string-match "[\s]+" "\f") ⇒ nil
--
Jean
Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns
Sign an open letter in support of Richard M. Stallman
https://stallmansupport.org/
https://rms-support-letter.github.io/
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 11:40 ` steve-humphreys
2021-05-20 11:49 ` Christopher Dimech
@ 2021-05-20 13:03 ` Jean Louis
1 sibling, 0 replies; 48+ messages in thread
From: Jean Louis @ 2021-05-20 13:03 UTC (permalink / raw)
To: steve-humphreys; +Cc: Christopher Dimech, help-gnu-emacs@gnu.org
* steve-humphreys@gmx.com <steve-humphreys@gmx.com> [2021-05-20 14:41]:
> > (string-match "[\s]+ " s)
> >
> > Matches any white-space character.
>
> That would actually match a sentence, which I don't want.
>
> What I like to match is a string composed only of whitespace.
Did we not discuss it recently?
This is how you can make negative match:
(not (string-match "[^[:blank:]]" " ")) ⇒ t
But if there is anything inside that is not blank character, it will
not match:
(not (string-match "[^[:blank:]]" " j")) ⇒ nil
--
Jean
Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns
Sign an open letter in support of Richard M. Stallman
https://stallmansupport.org/
https://rms-support-letter.github.io/
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 12:46 ` Jean Louis
@ 2021-05-20 13:55 ` steve-humphreys
2021-05-20 14:14 ` Jean Louis
0 siblings, 1 reply; 48+ messages in thread
From: steve-humphreys @ 2021-05-20 13:55 UTC (permalink / raw)
To: Jean Louis; +Cc: help-gnu-emacs@gnu.org
> Sent: Friday, May 21, 2021 at 12:46 AM
> From: "Jean Louis" <bugs@gnu.support>
> To: steve-humphreys@gmx.com
> Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> Subject: Re: [External] : Use the characters "+" and "-" in regular expressions
>
> * steve-humphreys@gmx.com <steve-humphreys@gmx.com> [2021-05-20 13:41]:
> > Am seeing how to match strings of blank lines
> >
> > But " +" does not do the job. I know why, but how can one match strings of blanks?
>
> [:blank:] is series of characters for that:
>
> (string-match "[[:blank:]]" " ") ⇒ 0
Have done the following (string-match "^[:blank:]$" s)
Because (string-match "[:blank:]" s) was matching sentences with space between words as well.
> Match new lines as blanks:
>
> (string-match "[[:blank:]]" "
>
> ") ⇒ 0
>
> There can be many various spaces, like EM SPACE: " "
>
> Thus this will not work on EM SPACE:
>
> (string-match " +" " ") ⇒ nil
>
> But this will work:
> (string-match "[[:blank:]]" " ") ⇒ 0
>
>
> --
> Jean
>
> Take action in Free Software Foundation campaigns:
> https://www.fsf.org/campaigns
>
> Sign an open letter in support of Richard M. Stallman
> https://stallmansupport.org/
> https://rms-support-letter.github.io/
>
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 13:55 ` steve-humphreys
@ 2021-05-20 14:14 ` Jean Louis
2021-05-20 14:28 ` steve-humphreys
0 siblings, 1 reply; 48+ messages in thread
From: Jean Louis @ 2021-05-20 14:14 UTC (permalink / raw)
To: steve-humphreys; +Cc: help-gnu-emacs@gnu.org
* steve-humphreys@gmx.com <steve-humphreys@gmx.com> [2021-05-20 16:56]:
> > [:blank:] is series of characters for that:
> >
> > (string-match "[[:blank:]]" " ") ⇒ 0
>
> Have done the following (string-match "^[:blank:]$" " ")
>
> Because (string-match "[:blank:]" s) was matching sentences with
> space between words as well.
Are you sure? As in that case the meaning of ^ is that it matches
begin of line, while in [^[:blank:]] it match anything but non-blank
and meaning of ^ is "not match" in that case.
--
Jean
Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns
Sign an open letter in support of Richard M. Stallman
https://stallmansupport.org/
https://rms-support-letter.github.io/
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 14:14 ` Jean Louis
@ 2021-05-20 14:28 ` steve-humphreys
2021-05-20 16:24 ` Yuri Khan
2021-05-21 5:48 ` Jean Louis
0 siblings, 2 replies; 48+ messages in thread
From: steve-humphreys @ 2021-05-20 14:28 UTC (permalink / raw)
To: Jean Louis; +Cc: help-gnu-emacs@gnu.org
> Sent: Friday, May 21, 2021 at 2:14 AM
> From: "Jean Louis" <bugs@gnu.support>
> To: steve-humphreys@gmx.com
> Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> Subject: Re: [External] : Use the characters "+" and "-" in regular expressions
>
> * steve-humphreys@gmx.com <steve-humphreys@gmx.com> [2021-05-20 16:56]:
>
> > > [:blank:] is series of characters for that:
> > >
> > > (string-match "[[:blank:]]" " ") ⇒ 0
> >
> > Have done the following (string-match "^[:blank:]$" " ")
> >
> > Because (string-match "[:blank:]" s) was matching sentences with
> > space between words as well.
>
> Are you sure? As in that case the meaning of ^ is that it matches
> begin of line, while in [^[:blank:]] it match anything but non-blank
> and meaning of ^ is "not match" in that case.
I have settled with
(string-match "^[:blank:]*$" s)
This would match only strings with spaces, not sentences with spaces. What do you think?
>
> --
> Jean
>
> Take action in Free Software Foundation campaigns:
> https://www.fsf.org/campaigns
>
> Sign an open letter in support of Richard M. Stallman
> https://stallmansupport.org/
> https://rms-support-letter.github.io/
>
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 14:28 ` steve-humphreys
@ 2021-05-20 16:24 ` Yuri Khan
2021-05-20 16:34 ` steve-humphreys
2021-05-21 5:48 ` Jean Louis
1 sibling, 1 reply; 48+ messages in thread
From: Yuri Khan @ 2021-05-20 16:24 UTC (permalink / raw)
To: steve-humphreys; +Cc: help-gnu-emacs@gnu.org, Jean Louis
On Thu, 20 May 2021 at 21:50, <steve-humphreys@gmx.com> wrote:
> I have settled with
>
> (string-match "^[:blank:]*$" s)
>
> This would match only strings with spaces, not sentences with spaces. What do you think?
No, that will match lines consisting of colons and letters a, b, k, l,
and n. To use a named character class, you need double brackets.
^ permalink raw reply [flat|nested] 48+ messages in thread
* [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 16:24 ` Yuri Khan
@ 2021-05-20 16:34 ` steve-humphreys
2021-05-20 17:16 ` Eduardo Ochs
0 siblings, 1 reply; 48+ messages in thread
From: steve-humphreys @ 2021-05-20 16:34 UTC (permalink / raw)
To: Yuri Khan; +Cc: help-gnu-emacs@gnu.org, Jean Louis
> Sent: Friday, May 21, 2021 at 4:24 AM
> From: "Yuri Khan" <yuri.v.khan@gmail.com>
> To: steve-humphreys@gmx.com
> Cc: "Jean Louis" <bugs@gnu.support>, "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> Subject: Re: [External] : Use the characters "+" and "-" in regular expressions
>
> On Thu, 20 May 2021 at 21:50, <steve-humphreys@gmx.com> wrote:
>
> > I have settled with
> >
> > (string-match "^[:blank:]*$" s)
> >
> > This would match only strings with spaces, not sentences with spaces. What do you think?
>
> No, that will match lines consisting of colons and letters a, b, k, l,
> and n. To use a named character class, you need double brackets.
Like this then
(string-match "^[[:blank:]]*$" s)
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 16:34 ` steve-humphreys
@ 2021-05-20 17:16 ` Eduardo Ochs
2021-05-20 18:29 ` Drew Adams
0 siblings, 1 reply; 48+ messages in thread
From: Eduardo Ochs @ 2021-05-20 17:16 UTC (permalink / raw)
To: steve-humphreys; +Cc: help-gnu-emacs@gnu.org, Jean Louis, Yuri Khan
Btw, my favorite way to not have to remember all these, ahem, corner
cases, is to put comments like these near my uglier sexps:
;; (info "(elisp)Rx Constructs")
;; (rx (any "[]") (one-or-more "=") (any "[]"))
On Thu, 20 May 2021 at 13:35, <steve-humphreys@gmx.com> wrote:
> ...
^ permalink raw reply [flat|nested] 48+ messages in thread
* RE: [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 17:16 ` Eduardo Ochs
@ 2021-05-20 18:29 ` Drew Adams
0 siblings, 0 replies; 48+ messages in thread
From: Drew Adams @ 2021-05-20 18:29 UTC (permalink / raw)
To: Eduardo Ochs, steve-humphreys@gmx.com
Cc: help-gnu-emacs@gnu.org, Jean Louis, Yuri Khan
> Btw, my favorite way to not have to remember all these, ahem, corner
> cases, is to put comments like these near my uglier sexps:
>
> ;; (info "(elisp)Rx Constructs")
> ;; (rx (any "[]") (one-or-more "=") (any "[]"))
I do the same (e.g., the latter comment).
IOW, I use RX to double-check or sometimes to create a regexp.
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [External] : Use the characters "+" and "-" in regular expressions
2021-05-20 14:28 ` steve-humphreys
2021-05-20 16:24 ` Yuri Khan
@ 2021-05-21 5:48 ` Jean Louis
1 sibling, 0 replies; 48+ messages in thread
From: Jean Louis @ 2021-05-21 5:48 UTC (permalink / raw)
To: steve-humphreys; +Cc: help-gnu-emacs@gnu.org
* steve-humphreys@gmx.com <steve-humphreys@gmx.com> [2021-05-20 17:28]:
> I have settled with
>
> (string-match "^[:blank:]*$" s)
>
> This would match only strings with spaces, not sentences with
> spaces. What do you think?
That one is good to match nothing:
(string-match "^[:blank:]*$" "") ⇒ 0
(string-match "^[:blank:]*$" " ") ⇒ nil
(string-match "^[:blank:]*$" " ") ⇒ nil
You have to read the manual: (info "(elisp) Regular Expressions")
--
Jean
Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns
Sign an open letter in support of Richard M. Stallman
https://stallmansupport.org/
https://rms-support-letter.github.io/
^ permalink raw reply [flat|nested] 48+ messages in thread
end of thread, other threads:[~2021-05-21 5:48 UTC | newest]
Thread overview: 48+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-05-19 16:07 Use the characters "+" and "-" in regular expressions steve-humphreys
2021-05-19 16:17 ` Skip Montanaro
2021-05-19 16:26 ` steve-humphreys
2021-05-19 16:47 ` Yuri Khan
2021-05-19 17:39 ` steve-humphreys
2021-05-19 19:16 ` tomas
2021-05-19 19:27 ` tomas
2021-05-19 19:30 ` Yuri Khan
2021-05-19 21:32 ` tomas
2021-05-19 21:59 ` [External] : " Drew Adams
2021-05-20 6:26 ` RE: [External] : " steve-humphreys
2021-05-20 7:59 ` steve-humphreys
2021-05-20 8:26 ` tomas
2021-05-20 8:41 ` steve-humphreys
2021-05-20 9:42 ` steve-humphreys
2021-05-20 9:56 ` tomas
2021-05-20 10:11 ` steve-humphreys
2021-05-20 10:22 ` tomas
2021-05-20 10:37 ` steve-humphreys
2021-05-20 10:50 ` tomas
2021-05-20 11:19 ` steve-humphreys
2021-05-20 11:27 ` steve-humphreys
2021-05-20 12:04 ` tomas
2021-05-20 11:31 ` Christopher Dimech
2021-05-20 11:40 ` steve-humphreys
2021-05-20 11:49 ` Christopher Dimech
2021-05-20 13:03 ` Jean Louis
2021-05-20 11:59 ` tomas
2021-05-20 12:53 ` Jean Louis
2021-05-20 12:46 ` Jean Louis
2021-05-20 13:55 ` steve-humphreys
2021-05-20 14:14 ` Jean Louis
2021-05-20 14:28 ` steve-humphreys
2021-05-20 16:24 ` Yuri Khan
2021-05-20 16:34 ` steve-humphreys
2021-05-20 17:16 ` Eduardo Ochs
2021-05-20 18:29 ` Drew Adams
2021-05-21 5:48 ` Jean Louis
2021-05-20 12:39 ` Jean Louis
2021-05-20 7:15 ` Dash in regexp character classes: Beginnig vs. end [was: Use the characters "+" and "-" in regular expressions] tomas
2021-05-20 8:08 ` Robert Pluim
2021-05-19 19:26 ` [External] : Re: Use the characters "+" and "-" in regular expressions Drew Adams
2021-05-19 19:25 ` Drew Adams
2021-05-19 16:27 ` tomas
2021-05-19 16:39 ` Skip Montanaro
2021-05-19 17:43 ` Marcin Borkowski
2021-05-19 19:10 ` tomas
2021-05-19 19:17 ` [External] : " Drew Adams
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).