lua-users home
lua-l archive

Re: pattern matching problem

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


Am 30.08.2013 22:14 schröbte Geoff Smith:
Hi
Hi!
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" ))
 end
 print( trim0 "123.450000000" )
 print( trim0 "1234500" )
 print( trim0 "12345.0" )
Regards Geoff
Philipp

AltStyle によって変換されたページ (->オリジナル) /