Strip whitespace from a string/Top and tail: Difference between revisions

Emacs Lisp: Simplify solution
(Added solution for Action!)
(Emacs Lisp: Simplify solution)
Line 771:
 
=={{header|Emacs Lisp}}==
===trim left===
<lang Emacs Lisp>
(defun trim-l (str)
(replace-regexp-in-string "^ +" "" str) )
 
As of Emacs 24.4, the subr-x.el library contains string trimming functions:
(setq str " left between right ")
(insert (trim-l str) )
</lang>
<b>Output:</b>
<pre>
left between right
</pre>
 
<lang Lisp>(string-trim-left " left center right ") ;=> "left center right "
===trim right===
(string-trim-right " left center right ") ;=> " left center right"
<lang Emacs Lisp>
(string-trim " left center right ") ;=> "left center right"</lang>
(defun trim-r (str)
(replace-regexp-in-string " +$" "" str) )
 
This can be emulated by using regex replacement:
(setq str " left between right ")
(insert (trim-r str) )
</lang>
<b>Output:</b>
<pre>
left between right
</pre>
===trim version 1===
<lang Emacs Lisp>
(defun trim (str)
(trim-l (trim-r str) ))
 
<lang Lisp>(defun string-trim-left (str)
(setq str " left between right ")
(replace-regexp-in-string "^[ +\t\r\n]*" "" str) )
(insert (trim str) )
</lang>
<b>Output:</b>
<pre>
left between right
</pre>
===trim version 2===
<lang Emacs Lisp>
(defun trim (str)
(mapconcat 'identity (split-string str) " ") )
 
(defun string-trim-rright (str)
(setq str " left between right ")
(replace-regexp-in-string "[ +\t\r\n]*$" "" str) )
(insert (trim str) )
 
</lang>
(defun trimstring-ltrim (str)
<b>Output:</b>
(string-trim-lleft (string-trim-rright str) ))</lang>
<pre>
left between right
</pre>
 
=={{header|Erlang}}==
Anonymous user