2015-04-11 4 views
1

Мне нужен специальный шаблон Lua, который принимает все буквы верхнего регистра в строке и заменяет их пробелом и соответствующей строчной буквой;Lua pattern заменить заглавные буквы

TestStringOne => test string one 
this isA TestString => this is a test string 

Можно ли это сделать?

ответ

2

Предполагая, что используется только ASCII, это работает:

function lowercase(str) 
    return (str:gsub("%u", function(c) return ' ' .. c:lower() end)) 
end 

print(lowercase("TestStringOne")) 
print(lowercase("this isA TestString")) 
+0

Спасибо, что кажется хорошим. – Maurdekye

+0

'% u' соответствует верхнему регистру; '% l' для нижнего регистра =) – hjpotter92

+0

@ hjpotter92 Забыл, обновил. –

1
function my(s) 
    s = s:gsub('(%S)(%u)', '%1 %2'):lower() 
    return s 
end 

print(my('TestStringOne'))    -->test string one 
print(my('this isA TestString'))  -->this is a test string 
+0

Извините, Юй Хао был первым, и его ответ был прекрасен. – Maurdekye

+0

Я просто даю вам еще одну возможность. Он может сохранить трофей :) – tonypdmtr

Смежные вопросы