[NTG-context] Trimming strings and Lua string.trim question

Hans Hagen pragma at wxs.nl
Wed Mar 5 09:24:08 CET 2014


On 3/5/2014 5:45 AM, Rik Kabel wrote:
> I am trying to strip all leading and trailing whitespace from a string.
> I have tried two methods, neither of which is satisfactory.
>
> The first method uses \ignorespaces and \removeunwantedspaces. This
> fails to strip leading and trailing newlines.
>
> The second method uses the Lua string.strip function. The wiki description:
>
>     Yields string with leading and trailing whitespace (spaces,
>     horizontal and vertical tabs, newlines) removed
>
> suggests that this should do what I want, but I find that it removes
> internal whitespace as well as the leading and trailing whitespace.
>
> Can somebody suggest a better way of doing this?
>
> The following code demonstrates the problem:
>
>     % macros=mkvi
>     \starttexdefinition StringStrip #STRING
>        \startluacode
>          context(string.strip([==[#STRING]==]))
>        \stopluacode
>     \stoptexdefinition
>     \long\def\test{
>
>     This is a test. \quad
>
>     And it has an unexpected result.
>
>     With \tex{ignorespaces} and \tex{removeunwantedspaces}, the
>     newlines remain.
>
>     With Lua {\tt string.strip}, the \tex{quad} at the end of a
>     paragraph is preserved,    but the other internal whitespace
>     (including newlines) is gone!
>
>     }
>     \starttext
>     \subject{ignorespaces and removeunwantedspaces}
>     ¦\ignorespaces\test\removeunwantedspaces¦
>
>     \subject{Lua string.strip}
>     ¦\StringStrip{\test}¦
>     \stoptext

striplong

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
     tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
                                              | www.pragma-pod.nl
-----------------------------------------------------------------


More information about the ntg-context mailing list