lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Am 30.08.2013 22:14 schröbte Geoff Smith:


I always seem to have difficulty with pattern matching in Lua, here is another example that has stumped me so far

I am trying to trim a number string to remove non significant trailing zeros. So for example

"123.450000000" = "123.45"
"1234500" = "1234500"
"12345.00" = "12345.0"

I could of course write a function that iterates through the string from the back dropping zeros, but I thought there is probably a more elegant solution using Lua pattern matching functions.

Can this be done neatly with pattern matching ? Thanks for any suggested code snippets

    local function trim0( s )
      return (string.gsub( s, "^(%d+%.%d?%d-)0*$", "%1" ))

    print( trim0 "123.450000000" )
    print( trim0 "1234500" )
    print( trim0 "12345.0" )

Regards Geoff