Lua guide on Unicode에 따르면 "루아의 패턴 일치 기능은 바이트 단위로 작동합니다. 일반적으로 유니 코드 패턴 일치는 작동하지 않지만 원하는대로 작동합니다." 즉, 가장 좋은 옵션은 각 문자를 반복하고 올바른 문자 인 경우 해결하는 것입니다. 문자열의 각 유니 코드 문자를 반복 할 myString
이 유효 유니 코드가 아닌 경우
for character in string.gmatch(myString, "([%z\1-\127\194-\244][\128-\191]*)") do
-- Do something with the character
end
참고이 방법은 작동하지 않습니다. 문자는 당신이 원하는 일 경우 단순히 당신이 당신의 문자열에서 원하지 않는 모든 문자의 목록을 가지고 다음을 제외 아마도 최선의 확인하려면이 도움이
local notAllowed = ":()[]{}+_-=\|`~,.<>/[email protected]#$%^&*"
local isValid = true
for character in string.gmatch(myString, "([%z\1-\127\194-\244][\128-\191]*)") do
if notAllowed:find(character) then
isValid = false
break
end
end
희망을.
루아 (5.2 이하)의 유니 코드에 대한 지원은 제네릭에서 다소 제한적입니다. 정확히 무엇을 해결하고 싶은지에 대한 [가장 단순하고 완전하며 검증 가능한 예제] (http://stackoverflow.com/help/mcve)를 게시하십시오. 아마도 그것을 해결할 수있는 쉬운 방법이있을 것입니다. –
좋아, 내가 제공 할 수있는 간단한 예제는 특수 문자가 포함 된 단어를 반환 할 수있는 루아 패턴이 필요하다는 것입니다. 하지만 그들은 특수 문자가 없어야합니다. 이것이 가능한 경우 어떻게해야합니까? – TULOA