www.delorie.com/gnu/docs/elisp-manual-21/elisp_571.html   search  
 
Buy the book!


GNU Emacs Lisp Reference Manual

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

34.2.3 Regular Expression Functions

These functions operate on regular expressions.

Function: regexp-quote string
This function returns a regular expression whose only exact match is string. Using this regular expression in looking-at will succeed only if the next characters in the buffer are string; using it in a search function will succeed if the text being searched contains string.

This allows you to request an exact string match or search when calling a function that wants a regular expression.

 
(regexp-quote "^The cat$")
     => "\\^The cat\\$"

One use of regexp-quote is to combine an exact string match with context described as a regular expression. For example, this searches for the string that is the value of string, surrounded by whitespace:

 
(re-search-forward
 (concat "\\s-" (regexp-quote string) "\\s-"))

Function: regexp-opt strings &optional paren
This function returns an efficient regular expression that will match any of the strings strings. This is useful when you need to make matching or searching as fast as possible--for example, for Font Lock mode.

If the optional argument paren is non-nil, then the returned regular expression is always enclosed by at least one parentheses-grouping construct.

This simplified definition of regexp-opt produces a regular expression which is equivalent to the actual value (but not as efficient):

 
(defun regexp-opt (strings paren)
  (let ((open-paren (if paren "\\(" ""))
        (close-paren (if paren "\\)" "")))
    (concat open-paren
            (mapconcat 'regexp-quote strings "\\|")
            close-paren)))

Function: regexp-opt-depth regexp
This function returns the total number of grouping constructs (parenthesized expressions) in regexp.


  webmaster   donations   bookstore     delorie software   privacy  
  Copyright 2003   by The Free Software Foundation     Updated Jun 2003