all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Emacs regexp problem
@ 2008-01-29 18:00 mailpitches
  2008-01-29 18:50 ` Pascal Bourguignon
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: mailpitches @ 2008-01-29 18:00 UTC (permalink / raw)
  To: help-gnu-emacs

X-No-Archive:yes

Hello, I'm doing an emacs replace-regexp and the regexp behaves
differently from how it behaves in Python, and also differently from
how I expect.

I'm trying to add quotes around the parameter in a function call.
I.e.:
func(param) should be converted to func('param')

I use the following command:
M-x replace-regexp [enter] get\((.*)\) [enter] get('\1')) [enter]

and the result is func(param) is converted to func('(param)')

Why are those extra parentheses appearing in there; is this an error
on emacs' part?

Thanks

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Emacs regexp problem
  2008-01-29 18:00 Emacs regexp problem mailpitches
@ 2008-01-29 18:50 ` Pascal Bourguignon
  2008-01-31  6:06   ` Tim X
  2008-01-29 19:20 ` Joel J. Adamson
  2008-01-29 23:14 ` Xah Lee
  2 siblings, 1 reply; 5+ messages in thread
From: Pascal Bourguignon @ 2008-01-29 18:50 UTC (permalink / raw)
  To: help-gnu-emacs

"mailpitches@email.com" <mailpitches@email.com> writes:

> Hello, I'm doing an emacs replace-regexp and the regexp behaves
> differently from how it behaves in Python, and also differently from
> how I expect.
>
> I'm trying to add quotes around the parameter in a function call.
> I.e.:
> func(param) should be converted to func('param')
>
> I use the following command:
> M-x replace-regexp [enter] get\((.*)\) [enter] get('\1')) [enter]
>
> and the result is func(param) is converted to func('(param)')
>
> Why are those extra parentheses appearing in there; is this an error
> on emacs' part?

Read the doc! (info "(emacs)Regexps")

emacs regexp are more like BRE than ERE in this respect.


Use: M-x replace-regexp RET get(\(.*\)) RET get('\1')) RET

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/

READ THIS BEFORE OPENING PACKAGE: According to certain suggested
versions of the Grand Unified Theory, the primary particles
constituting this product may decay to nothingness within the next
four hundred million years.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Emacs regexp problem
  2008-01-29 18:00 Emacs regexp problem mailpitches
  2008-01-29 18:50 ` Pascal Bourguignon
@ 2008-01-29 19:20 ` Joel J. Adamson
  2008-01-29 23:14 ` Xah Lee
  2 siblings, 0 replies; 5+ messages in thread
From: Joel J. Adamson @ 2008-01-29 19:20 UTC (permalink / raw)
  To: help-gnu-emacs

"mailpitches@email.com" <mailpitches@email.com> writes:

[...]


> func(param) should be converted to func('param')
>
> I use the following command:
> M-x replace-regexp [enter] get\((.*)\) [enter] get('\1')) [enter]
>
> and the result is func(param) is converted to func('(param)')
>
> Why are those extra parentheses appearing in there

They're your parentheses: in emacs \(...\) makes groups, rather than
(...), so your second un-escaped set of parentheses is getting matched
and ending up in the replacement ('\1').

> ; is this an error on emacs' part?

Not really ;)

Joel

-- 
Joel J. Adamson
Biostatistician
Pediatric Psychopharmacology Research Unit
Massachusetts General Hospital
Boston, MA  02114
(617) 643-1432
(303) 880-3109

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Emacs regexp problem
  2008-01-29 18:00 Emacs regexp problem mailpitches
  2008-01-29 18:50 ` Pascal Bourguignon
  2008-01-29 19:20 ` Joel J. Adamson
@ 2008-01-29 23:14 ` Xah Lee
  2 siblings, 0 replies; 5+ messages in thread
From: Xah Lee @ 2008-01-29 23:14 UTC (permalink / raw)
  To: help-gnu-emacs

For a basic coverage of the diff between emacs and perl/python's
regex, see:

 http://xahlee.org/emacs/emacs_regex.html

  Xah
  xah@xahlee.org
∑ http://xahlee.org/

☄

On Jan 29, 10:00 am, "mailpitc...@email.com" <mailpitc...@email.com>
wrote:
> X-No-Archive:yes
>
> Hello, I'm doing an emacs replace-regexp and the regexp behaves
> differently from how it behaves in Python, and also differently from
> how I expect.
>
> I'm trying to add quotes around the parameter in a function call.
> I.e.:
> func(param) should be converted to func('param')
>
> I use the following command:
> M-x replace-regexp [enter] get\((.*)\) [enter] get('\1')) [enter]
>
> and the result is func(param) is converted to func('(param)')
>
> Why are those extra parentheses appearing in there; is this an error
> on emacs' part?
>
> Thanks

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Emacs regexp problem
  2008-01-29 18:50 ` Pascal Bourguignon
@ 2008-01-31  6:06   ` Tim X
  0 siblings, 0 replies; 5+ messages in thread
From: Tim X @ 2008-01-31  6:06 UTC (permalink / raw)
  To: help-gnu-emacs

Pascal Bourguignon <pjb@informatimago.com> writes:

> "mailpitches@email.com" <mailpitches@email.com> writes:
>
>> Hello, I'm doing an emacs replace-regexp and the regexp behaves
>> differently from how it behaves in Python, and also differently from
>> how I expect.
>>
>> I'm trying to add quotes around the parameter in a function call.
>> I.e.:
>> func(param) should be converted to func('param')
>>
>> I use the following command:
>> M-x replace-regexp [enter] get\((.*)\) [enter] get('\1')) [enter]
>>
>> and the result is func(param) is converted to func('(param)')
>>
>> Why are those extra parentheses appearing in there; is this an error
>> on emacs' part?
>
> Read the doc! (info "(emacs)Regexps")
>
> emacs regexp are more like BRE than ERE in this respect.
>
>
> Use: M-x replace-regexp RET get(\(.*\)) RET get('\1')) RET

Isn't there an extra ) at the end which shouldn't be there?

Also, note the RE's are greedy. This means you probably want to modify
the \(.*\) so that it only matches on the smallest possible match or you
could get odd results if there are any lines with multiple get()s in
them.

Tim
>
> -- 
> __Pascal Bourguignon__                     http://www.informatimago.com/
>
> READ THIS BEFORE OPENING PACKAGE: According to certain suggested
> versions of the Grand Unified Theory, the primary particles
> constituting this product may decay to nothingness within the next
> four hundred million years.

-- 
tcross (at) rapttech dot com dot au


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2008-01-31  6:06 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-29 18:00 Emacs regexp problem mailpitches
2008-01-29 18:50 ` Pascal Bourguignon
2008-01-31  6:06   ` Tim X
2008-01-29 19:20 ` Joel J. Adamson
2008-01-29 23:14 ` Xah Lee

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.