Regular expressions: Difference between revisions

Content added Content deleted
Line 547: Line 547:
=={{header|Emacs Lisp}}==
=={{header|Emacs Lisp}}==
<lang Emacs Lisp>
<lang Emacs Lisp>
(defun match (str word)
(defun match (word str)
(if (string-match word str)
(setq pos (string-match word str) )
(progn
(if pos
(progn
(insert (format "%s found in: %s\n" word str) )
(setq regex (format "^.+%s" word) )
(insert (format "%s found at position %d in: %s\n" word pos str) )
(setq str (replace-regexp-in-string regex (format "left %s" word) str) )
(setq regex (format "^.+%s" word) )
(setq regex (format "%s.+$" word) )
(setq str (replace-regexp-in-string regex (format "left %s" word) str) )
(setq str (replace-regexp-in-string regex (format "%s right" word) str) )
(setq regex (format "%s.+$" word) )
(insert (format "result: %s\n" str) ))
(setq str (replace-regexp-in-string regex (format "%s right" word) str) )
(insert (format "%s not found in: %s\n" word str) )))
(insert (format "result: %s\n" str) ))
(insert (format "%s not found in: %s\n" word str) )))


(setq str1 "before center after" str2 "before centre after")
(setq str1 "before center after" str2 "before centre after")


(progn
(progn
(match str1 "center")
(match "center" str1)
(match str2 "center"))
(insert "\n")
(match "center" str2) )
</lang>
</lang>
<b>Output:</b>
<b>Output:</b>
<pre>
<pre>
center found in: before center after
center found at position 7 in: before center after
result: left center right
result: left center right

center not found in: before centre after
center not found in: before centre after
</pre>
</pre>