From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Thierry Volpiatto Newsgroups: gmane.emacs.help Subject: Re: Negate a regexp Date: Mon, 19 Apr 2010 19:54:46 +0200 Organization: ThierryVolpiatto Message-ID: <877ho3tjix.fsf@tux.homenetwork> References: <8282B0BC46B0423AA171693F27FF1D22@us.oracle.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: dough.gmane.org 1271701111 20959 80.91.229.12 (19 Apr 2010 18:18:31 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 19 Apr 2010 18:18:31 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Mon Apr 19 20:18:30 2010 connect(): No such file or directory Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1O3vYD-0004jz-OS for geh-help-gnu-emacs@m.gmane.org; Mon, 19 Apr 2010 20:18:30 +0200 Original-Received: from localhost ([127.0.0.1]:36173 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O3vYC-0006P4-Mw for geh-help-gnu-emacs@m.gmane.org; Mon, 19 Apr 2010 14:18:28 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1O3vF3-00020G-Fy for help-gnu-emacs@gnu.org; Mon, 19 Apr 2010 13:58:41 -0400 Original-Received: from [140.186.70.92] (port=43002 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O3vF1-0001zp-IT for help-gnu-emacs@gnu.org; Mon, 19 Apr 2010 13:58:40 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1O3vEz-0002Q7-67 for help-gnu-emacs@gnu.org; Mon, 19 Apr 2010 13:58:39 -0400 Original-Received: from lo.gmane.org ([80.91.229.12]:51445) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1O3vEy-0002Pq-S0 for help-gnu-emacs@gnu.org; Mon, 19 Apr 2010 13:58:37 -0400 Original-Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1O3vEv-00027l-1x for help-gnu-emacs@gnu.org; Mon, 19 Apr 2010 19:58:33 +0200 Original-Received: from 202.77.197-77.rev.gaoland.net ([77.197.77.202]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 19 Apr 2010 19:58:33 +0200 Original-Received: from thierry.volpiatto by 202.77.197-77.rev.gaoland.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 19 Apr 2010 19:58:33 +0200 X-Injected-Via-Gmane: http://gmane.org/ connect(): No such file or directory Original-Lines: 50 Original-X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: 202.77.197-77.rev.gaoland.net Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAElBMVEUHBARgJRFPS0WbMBTC TSG/uJs0yyVHAAAACXBIWXMAAAsSAAALEgHS3X78AAAACXZwQWcAAAAwAAAAMADO7oxXAAABpUlE QVQ4y3VTQXKDMAyUnD7AwvQOhtxj5N4LFh9ow/+/UtlpM0BczWSS0Wola7UBeEb3+3kJ/5p9ZLz3 UI0n0J0Y4K/lh1nG24FhlJOR2LdSKtpV5gfi/Zd+NdaJBbB4D5N0JnfUIVp6obZURkJwS2a8b9uX AkgxA5gCEcknAH1s2z0DPooWmjGKcJR+HNZt+9bm0GtGRycRuZGs98Ffr02vABWGopIAhmXmxnQN BwBXZjgFLHRoqbfeYxCLWqsjLyKhbEHW+A5nEs699Q2O80ALrgHTmUTy6P0MnKyKQpKHpoNWokxs F0D5VegvWmEozyE6nuMiS98mWzlUQ9bW8qYfqOaFtzWlYCqGeIs6HEyl08jkrxUG9MF5ipXpOOpd ZMoXPPVSLWJiiwNNB+eRSyxJZmQKcacikgucnCRiHuJOLmyYJRDPwOqAvY4pA+Wy+VS8G26BAsdb Ph2Hw7ORy/H0IOG0TnaM8Cp0XrFYyU0v2z8AqkifPVbLZ0qo/gsRg60C7p+8Ov9jrUIxFde+jnAq X42hyp/c+ZcnVyUYBarrqZt3+R8450png3cWKgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAwOC0wNS0z MVQyMjoxNDoyMiswMjowMK3VBDcAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMDctMTAtMjhUMTc6MDg6 NDgrMDE6MDDLdIcLAAAAEXRFWHRqcGVnOmNvbG9yc3BhY2UAMix1VZ8AAAAgdEVYdGpwZWc6c2Ft cGxpbmctZmFjdG9yADJ4MiwxeDEsMXgxSfqmtAAAAABJRU5ErkJggg== User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) Cancel-Lock: sha1:tMHmabj8AqGsbCarWqKNwn78fok= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:72759 Archived-At: Leo writes: > On 2010-04-19 16:51 +0100, Drew Adams wrote: >>> How to negate a regexp? For example this one: \(?:\sw\|\s_\|\s\\). >> >> You cannot express a complement using (real) regexps. Regular expressions are >> just not that expressive (powerful). >> >> However, Emacs Lisp is that powerful; its use of regexps is not limited to real >> regular expressions; and you can bathe your use of regexps in a more powerful >> sauce. >> >> In Emacs Lisp, you can in some cases use complementary syntax: \W as complement >> of \w, \S_ as complement of \s_, etc. And you can use ^ at the beginning of a >> [...] character set to complement that set (what the manual calls a >> "complemented character alternative"). See node `Syntax of Regexps' in the Elisp >> manual. >> >> Another thing you can do is to use a regexp to determine a set of matches - >> those elements you do not want, and then, assuming you know the overall domain >> explicitly (extensively), subtract those matches to get the complement (those >> elements of the domain that do not match). > > I need to provide a regexp to an abbrev table so that the match in group > 1 (which is the abbrev name) can contain word symbol or \. The match is > done through (looking-back ...) with the GREEDY arg omitted. For example > in a buffer with text \coor-!-, where -!- indicates point, (looking-back > REGEXP) (match-string 1) should return \coor. Any idea how to construct > such a REGEXP? It will return \\coor because \ have to be escaped. (save-excursion (when (looking-back "^\\(\\\\[a-z]*\\)") (match-string 0))) It match on 1 also. > I am not entirely sure the way the :regexp to abbrev table should be > provided is well thought-out. See my question to emacs-devel: > http://permalink.gmane.org/gmane.emacs.devel/123749. > > Cheers, > > Leo > > > > -- Thierry Volpiatto Gpg key: http://pgp.mit.edu/