From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier via Users list for the GNU Emacs text editor Newsgroups: gmane.emacs.help Subject: Re: Regex to match lines with a specific number of words Date: Sat, 23 Apr 2022 18:46:33 -0400 Message-ID: References: <87czh7ttzt.fsf@fastmail.fm> Reply-To: Stefan Monnier Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9837"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:fXFNsZe/dpkao17443Xnnxlrsrs= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Sun Apr 24 00:47:14 2022 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1niOX3-0002Qs-Ru for geh-help-gnu-emacs@m.gmane-mx.org; Sun, 24 Apr 2022 00:47:13 +0200 Original-Received: from localhost ([::1]:46370 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1niOX2-0002lz-BR for geh-help-gnu-emacs@m.gmane-mx.org; Sat, 23 Apr 2022 18:47:12 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:40734) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1niOWZ-0002li-1I for help-gnu-emacs@gnu.org; Sat, 23 Apr 2022 18:46:43 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]:40044) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1niOWW-0003ZW-4j for help-gnu-emacs@gnu.org; Sat, 23 Apr 2022 18:46:42 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1niOWU-0001fy-CD for help-gnu-emacs@gnu.org; Sun, 24 Apr 2022 00:46:38 +0200 X-Injected-Via-Gmane: http://gmane.org/ Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 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-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:137009 Archived-At: >> \([^[:space:]]+[[:space:]]+\)\{30,\} I don't think yo want to match more than 30 times: as soon as you have 30 repetitions you know what to do. And indeed you should likely anchor your regexp at beg of line (but not end of line, since you want to ignore the rest of the line after matching 30 repetitions). Note also that regardless if [:space:] matches line-feed or not, one of [[:space:]] or [^[:space:]] will match line-feed. Personally, I'd go with something like: ^\([^\n\t ]+[\t ]+\)\{30\} [ Tho, IIUC `flush-lines` doesn't know \t and \n, so you'll probably need C-q C-j and C-q TAB. ] Stefan