주간 챌린지 110
2036 단어 perlweeklychallengeperl
작업 #1 › 유효한 전화번호
일
텍스트 파일이 제공됩니다. 주어진 텍스트 파일에 유효한 모든 전화번호를 표시하는 스크립트를 작성하십시오.
내 솔루션
유효한 전화번호가 무엇인지부터 알아보겠습니다. +로 시작하는 전화번호만 실제로 내가 있는 곳에서 작동한다고 말할 수 있습니다. 그러나 작업에 대해서는 이것이 별로 중요하지 않다고 생각합니다.
작업 외부에서 이 작업을 수행했다면 Path::Tiny을 사용하여 파일을 읽었을 것입니다. 일반 독자들이 알겠지만, 저는 이러한 과제에서 핵심 Perl의 일부가 아닌 모듈을 사용하지 않는 것을 선호합니다.
이 작업을 위해 파일을 한 줄씩 읽고 정규식 /^(?:\+[0-9]{2}|\([0-9]{2}\)|[0-9]{4}) [0-9]{10}$/
과 일치하는 경우 한 줄을 출력합니다. 나는 0-9
이 digits in other languages을 포함하기 때문에 \d
을 사용한다.
예시
» ./ch-1.pl input1.txt
0044 1148820341
+44 1148820341
(44) 1148820341
작업 #2 › 파일 조옮김
일
텍스트 파일이 제공됩니다. 주어진 파일의 내용을 바꾸는 스크립트를 작성하십시오.
내 솔루션
이 작업에서는 형식이 CSV라고 언급하지 않았지만 예제에서는 입력이 CSV 파일임을 나타냅니다. Text::CSV을 사용하면 쉼표가 있는 값의 이스케이프를 올바르게 처리하므로 문제를 해결하지 못할 것입니다.
이 작업을 위해 입력 파일을 읽고 @lines
이라는 값으로 배열 배열을 만듭니다. 그런 다음 각 열을 반복하고 map { $_->[$col] // '' } @lines
및 join
메서드를 사용하여 출력의 각 행을 표시합니다.
논리 정의 또는 //
은 일부 행의 열 수가 같지 않고 출력에서 undef 경고를 방지하는 경우에 사용됩니다(STDERR에도 불구하고).
예
» ./ch-2.pl input2.txt
name,Mohammad,Joe,Julie,Cristina
age,45,20,35,10
sex,m,m,f,f
Reference
이 문제에 관하여(주간 챌린지 110), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/simongreennet/weekly-challenge-110-22ao
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
» ./ch-1.pl input1.txt
0044 1148820341
+44 1148820341
(44) 1148820341
일
텍스트 파일이 제공됩니다. 주어진 파일의 내용을 바꾸는 스크립트를 작성하십시오.
내 솔루션
이 작업에서는 형식이 CSV라고 언급하지 않았지만 예제에서는 입력이 CSV 파일임을 나타냅니다. Text::CSV을 사용하면 쉼표가 있는 값의 이스케이프를 올바르게 처리하므로 문제를 해결하지 못할 것입니다.
이 작업을 위해 입력 파일을 읽고
@lines
이라는 값으로 배열 배열을 만듭니다. 그런 다음 각 열을 반복하고 map { $_->[$col] // '' } @lines
및 join
메서드를 사용하여 출력의 각 행을 표시합니다.논리 정의 또는
//
은 일부 행의 열 수가 같지 않고 출력에서 undef 경고를 방지하는 경우에 사용됩니다(STDERR에도 불구하고).예
» ./ch-2.pl input2.txt
name,Mohammad,Joe,Julie,Cristina
age,45,20,35,10
sex,m,m,f,f
Reference
이 문제에 관하여(주간 챌린지 110), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/simongreennet/weekly-challenge-110-22ao텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)