From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Rasmus Newsgroups: gmane.emacs.help Subject: Re: How to grok a complicated regex? Date: Sat, 14 Mar 2015 01:12:42 +0100 Message-ID: <87zj7g3091.fsf@gmx.us> References: <87twxo1pnr.fsf@debian.uxu> <87egosa3od.fsf@wmi.amu.edu.pl> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1426292002 18858 80.91.229.3 (14 Mar 2015 00:13:22 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 14 Mar 2015 00:13:22 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sat Mar 14 01:13:14 2015 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1YWZhY-0001Qq-Db for geh-help-gnu-emacs@m.gmane.org; Sat, 14 Mar 2015 01:13:12 +0100 Original-Received: from localhost ([::1]:39083 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YWZhX-0007vI-K8 for geh-help-gnu-emacs@m.gmane.org; Fri, 13 Mar 2015 20:13:11 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:38534) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YWZhH-0007sQ-GD for help-gnu-emacs@gnu.org; Fri, 13 Mar 2015 20:12:56 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YWZhE-0002rQ-98 for help-gnu-emacs@gnu.org; Fri, 13 Mar 2015 20:12:55 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:50033) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YWZhE-0002qc-31 for help-gnu-emacs@gnu.org; Fri, 13 Mar 2015 20:12:52 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1YWZhA-00012s-FI for help-gnu-emacs@gnu.org; Sat, 14 Mar 2015 01:12:48 +0100 Original-Received: from 102.201.133.37.dynamic.jazztel.es ([37.133.201.102]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 14 Mar 2015 01:12:48 +0100 Original-Received: from rasmus by 102.201.133.37.dynamic.jazztel.es with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 14 Mar 2015 01:12:48 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 41 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 102.201.133.37.dynamic.jazztel.es Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAAAAAByaaZbAAAAAmJLR0QA/4ePzL8AAAAJcEhZ cwAAAEgAAABIAEbJaz4AAAJLSURBVEjHzZa7geQwDEMdoxm0wlJYCVtBMWgHwQXyT7O7txceI9vj J1EkCM8xSbWdJN2yx7mi0RJRCXU/PCqpWddecf3okm2hMpUHYMx7UTsDwPcCsTGC895BLz4uiXw/ QL3fz9Hh+162vVKWlCQF5Q2o+31v2+lJ0gDoJOUdqM/3LSoZjAUk0WzAzifxEIoxdgbKfsYcdz1e laJDJlGjvgXknaAaTAZF+BvAqh0ogJVURVD2qhxwbOohbKs1XBWAU3tZq2Oz7a2wnkpiT8XMnhL8 yO8WVLoS2+VUfwB0wtl3sEexMpXBfAKKkXkUfO4hygWOduII1v6NLSl12XEpEdld15wcQpb8+OTq ZmtXjPrU6EFlOkmE/BS27ebZB51Xu8wTTc+SOWXbZq15uMtWStJXmwo9U0vfkB276Et8N9A8eUGO LTgxa4otD3sDlpwvB1nFHSZpcJromPMClgFwqWqlLTWcsypmefgGmvKA8VmaIUAoa2STlPQATXSS DC7hDlpr9b57rT5eg7YCOi+XJHqSRwSt40uXKF91SmImfY6cSfhnYMmUswp19SZfgNs4jUqMs3kf rvFWxD3yZGJgn5+vwCNTYSx92tYn4JenNAHszvoJeOhE5y62pvhlRDdrh+Ii4MTL3qwPm9nyhzPl 1a1BjdSyN/t9A0K51hnGyYAAUN6c6dhagGuwVVkNs9mb930c+tns/laanvlLH1YMnxmv+Qeg+ml5 d/0GyI5vKxS2z+6366Nf1qlNTt8Cnn79g/Akv57h5/gPgT/tvnoH3s4GngAAAABJRU5ErkJggg== User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) Cancel-Lock: sha1:y1sTHjrevJPY1yp6ztqFuIYVfgU= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:103155 Archived-At: Marcin Borkowski writes: > On 2015-03-13, at 23:46, Emanuel Berg wrote: > >> Marcin Borkowski writes: >> >>> so I have this monstrosity [note: I know, there are >>> much worse ones, too!]: >>> >>> "\\`\\(?:\\\\[([]\\|\\$+\\)?\\(.*?\\)\\(?:\\\\[])]\\|\\$+\\)?\\'" >>> >>> (it's in the org-latex--script-size function in >>> ox-latex.el, if you're curious). >>> >>> I'm not asking “what does this match” – I can read >>> it myself. But it comes with a considerable effort. >> >> I dare say most people (even programmers) cannot read >> that so if you can that's great. > > Really? It's not /that/ difficult. You only need enough coffee (or > tea, in my case), time and motivation. > You don’t need a genius, or even IQ higher than, say, 90 or so. Damn. At least I know why I don't understand it now... To grok REs I sometimes prefer visualize regexps¹ over re-builder. Though re-builder has the advantage that it can understands \\ out of the box. You may also find highlight-regexp since it would color the different parentheses matches. Here's another project (for your students): adding lookaround to Emacs regexp /and/ have it merged. It would be *insanely(!)* at times. —Rasmus Footnotes: ¹ https://github.com/benma/visual-regexp.el -- A clever person solves a problem. A wise person avoids it