2017-12-10 27 views
-1

나는 얼랭 (Erlang)에있는 데이터베이스를 질의하기 위해 epgsql을 사용하고 있습니다. "what_was_in_the_row"를 둘러싼 따옴표를 포함하여 문자열 결과를 반환합니다. 결과를 사용하기 전에이 따옴표를 제거하려면 어떻게합니까?얼랑 (Erlang)에서 주변 인용문 제거하기

+2

큰 따옴표가 붙어 있습니까? 너는 어떻게 지내니? 'io : format ("~ p", ...)'는 문자열 주위에 여분의 큰 따옴표를 출력합니다. – Dogbert

+0

@Dogbert io_lib : format ("~ p ~ p", [Value1, Value2])을 사용하여 문자열에 다른 값을 넣고 소켓을 통해 Python 프로그램으로 보냅니다. 파이썬 프로그램은 따옴표가있는 것으로 봅니다. 나는 현재 파이썬 측에서 따옴표를 제거하고있다. –

답변

5

제어 형식 ~p (예쁜 인쇄물)은 인쇄되는 변수 유형에 대한 정보를 유지합니다. 인쇄 할 수있는 문자로 구성된 표준 정수 목록 (예 : [101,102,103])이 쉘에 "efg"으로 표시되는 문자열을 인쇄하고 있습니다.

io_lib:format("~p",[[101,102,103]]).으로 전화하면 결과가 ["\"efg\""]이고 어떤 설명이 필요합니다.

  • 주변 괄호

    io_lib:format/2의 반환 값 유형 목록, 다음 첫 번째 따옴표
  • , 그것은 문법 설탕 문자열 어쩌면 다른 목록을 나타냅니다를 나타냅니다,하지만의 일부가 아닙니다 그 결과,
  • 마지막으로 \"가 단일 문자 "

당신은 평가할 수를 나타내는 이스케이프 시퀀스입니다 (문자열 꽤 인쇄와 문자열로 표시됩니다 보이는 어떤 목록이 때문에 어쩌면 말) Leng th : ​​각 문자열의 차이를 확인하려면

  • 3 = 길이 ("efg").
  • 5 = length ("\"efg \ ""). 당신이 주변 따옴표없이 문자열을 얻고 싶다면

, 당신은 제어 형식 물론 ~s

1> [Res] = io_lib:format("~s",[[101,102,103]]). 
["efg"] 
2> length(Res). 
3 
3> [Res] = io_lib:format("~s",[Res]).   
["efg"] 

을 사용해야합니다, 마지막 줄은 내 예를 바보임을 보여줍니다. io_lib:format("~s ~s!",["Hello","world"]). 또는 더 복잡한 서식을 사용하면 결과는 chars()이고 char() 또는 chars()의 목록입니다.