루아에서 구두점을 "%p"
으로 설정 한 문자에 대한 문서를 찾을 수 없었습니다.루아 구두점 문자열 패턴 (% p)에 어떤 문자가 포함되어 있습니까?
8
A
답변
7
%p
는 다음과 일치하는 C 함수 ispunct
(C source v 5.2)에 의해 일치 :
041 ‘‘!’’ 042 ‘‘ ’’ 043 ‘‘#’’ 044 ‘‘$’’ 045 ‘‘%’’
046 ‘‘&’’ 047 ‘‘’’’ 050 ‘‘(’’ 051 ‘‘)’’ 052 ‘‘*’’
053 ‘‘+’’ 054 ‘‘,’’ 055 ‘‘-’’ 056 ‘‘.’’ 057 ‘‘/’’
072 ‘‘:’’ 073 ‘‘;’’ 074 ‘‘<’’ 075 ‘‘=’’ 076 ‘‘>’’
077 ‘‘?’’ 100 ‘‘@’’ 133 ‘‘[’’ 134 ‘‘\’’ 135 ‘‘]’’
136 ‘‘^’’ 137 ‘‘_’’ 140 ‘‘‘’’ 173 ‘‘{’’ 174 ‘‘|’’
175 ‘‘}’’ 176 ‘‘~’’
6
작은 스크립트 (man ispunct
에서)을 찾을 수 있습니다 :
for i=0,255 do
if string.match(string.char(i), "%p") then
io.write(string.char(i))
end
end
io.write("\n")
-- $ luajit test.lua
-- !"#$%&'()*+,-./:;<=>[email protected][\]^_`{|}~
9
대답은 로캘에 따라 다릅니다, 직접적인 interf입니다 C 함수에 에이스.
실제로 Lua 함수와 비슷한 기능을하는 C 표준 함수가있는 경우 Lua 함수는 특정 경우를 보지 않고 C 함수, 사마귀 및 모두를 래핑합니다.
가 (이 이유의 일부입니다 file:read()
여전히 5.2 trouble reading text with embedded zeroes는, 어쩌면 5.3에있을 것이다있다) Amaden는 "C"로케일에 대한 좋은 답변을주고, ColonelThirtyTwo 확인 할 수있는 올바른 방법을 준 반면
현재 로케일를 들어, C 표준은 말한다 :
ispunct()
을 : 어느 isspace와도 isalnum에 해당하는 문장 부호 문자의 로케일 특정 세트 중 하나 어떤 인쇄 문자의 ispunct 기능을 테스트합니다. "C" 로켈에서 ispunct는 이나 isalnum이 true가 아닌 모든 인쇄 문자에 대해 true를 반환합니다.