프로그래밍 언어/Perl

Perl 프로그래밍 문자열 처리 및 정규 표현식 - Perl #5

eco7T 2024. 11. 25. 10:34
반응형

오늘은 Perl 프로그래밍의 문자열 처리에 대해 정리 보겠습니다. Perl의 기본적인 문자열 처리 기능을 정리해 보고 코드 예제를 통해 실제 코드 적용 방법을 살펴보겠습니다.

Perl 프로그래밍 문자열 처리 및 정규 표현식
Perl 프로그래밍 문자열 처리 및 정규 표현식

 

 

Perl 프로그래밍 문자열 처리

문자열이란 문자의 연속된 집합으로, 예를 들어 "Hello, World!"와 같은 문장을 의미합니다. Perl에서는 문자열을 다루는 다양한 함수와 연산자를 통해 문자열을 쉽게 조작할 수 있습니다.

 

반응형

 

  문자열 선언

Perl에서 문자열을 사용하기 위해서는 먼저 변수를 선언해야 합니다. Perl에서는 문자열을 저장할 때 `$` 기호를 사용합니다. 예를 들어, 다음과 같이 문자열 변수를 선언할 수 있습니다.

my $greeting = "Hello, World!";
  • my는 변수를 선언할 때 사용하는 키워드로, 해당 변수가 사용 가능한 범위를 정해줍니다.
  • $greeting은 문자열 변수를 선언할 때 사용합니다. $ 기호는 스칼라(Scalar) 변수를 나타내며, 여기서는 문자열이나 숫자를 저장할 수 있습니다.

 

 

  문자열 연결하기 (Concatenation)

여러 문자열을 합치는 방법을 알아보겠습니다. 문자열을 합칠 때는 `.`(닷) 연산자를 사용합니다.

my $str1 = "Hello"; my $str2 = "World"; my $combined = $str1 . " " . $str2; print $combined; # 출력: Hello World
  • . 연산자는 문자열을 연결할 때 사용됩니다. 위의 예제에서 $str1$str2 사이에 공백 문자열 (`" "`)을 추가하여 두 문자열을 합쳤습니다.
  • print 함수는 해당 문자열을 화면에 출력하는 역할을 합니다.

 

 

  문자열 길이 구하기

문자열의 길이를 구하고 싶다면 `length` 함수를 사용할 수 있습니다.

my $text = "Perl Programming"; my $length = length($text); print $length; # 출력: 16
  • length($text)는 문자열의 길이를 반환합니다. 여기서는 "Perl Programming"이라는 문자열의 길이인 16이 출력됩니다.

 

  문자열 일부 추출하기 (Substring)

문자열의 일부분만을 가져오고 싶다면 substr 함수를 사용합니다. substr 함수는 문자열, 시작 위치, 그리고 가져올 길이를 매개변수로 받습니다.

my $sentence = "Welcome to Perl!"; my $word = substr($sentence, 11, 4); print $word; # 출력: Perl
  • substr($sentence, 11, 4)$sentence 문자열의 11번째 문자부터 시작해서 4개의 문자를 추출합니다.
  • Perl에서는 문자열의 인덱스가 0부터 시작하므로, 11번째 인덱스는 "P"에 해당합니다.

 

 

  문자열 검색 및 대체하기

Perl에서는 문자열 내 특정 패턴을 찾고 이를 다른 문자열로 대체할 수 있는 매우 강력한 도구를 제공합니다. s/// 연산자를 사용해 문자열을 대체할 수 있습니다.

my $message = "I love Perl!"; $message =~ s/Perl/Python/; print $message; # 출력: I love Python!
  • =~ 연산자는 특정 패턴을 문자열에서 찾거나 수정할 때 사용됩니다.
  • s/Perl/Python/은 문자열에서 "Perl"이라는 단어를 "Python"으로 대체합니다.

 

  문자열에서 패턴 찾기 (Regular Expressions)

정규 표현식(Regular Expressions)은 문자열 내에서 특정한 패턴을 찾기 위해 사용됩니다. 예를 들어, 문자열에 숫자가 포함되어 있는지 확인해 보겠습니다.

my $data = "User ID: 12345"; if ($data =~ /\d+/) { print "숫자가 포함되어 있습니다."; } else { print "숫자가 포함되어 있지 않습니다."; }
  • /\d+/는 하나 이상의 숫자를 의미하는 정규 표현식입니다. \d는 숫자를 나타내고, +는 하나 이상을 의미합니다.
  • $data =~ /\d+/$data 문자열에서 숫자가 있는지 확인하는 조건문입니다.

 

 

  코드 예시

간단한 프로그램을 작성해 보겠습니다. 이 프로그램은 사용자로부터 문자열을 입력받아 문자열을 거꾸로 출력하고, 문자열 길이를 출력하는 프로그램입니다.

print "문자열을 입력하세요: "; my $input = <STDIN>; chomp($input); # 문자열 뒤집기 my $reversed = reverse($input); print "뒤집힌 문자열: $reversed\n"; # 문자열 길이 출력 my $length = length($input); print "문자열의 길이: $length\n";
  • print "문자열을 입력하세요: ";는 사용자에게 문자열을 입력하라는 메시지를 출력합니다.
  • <STDIN>은 사용자가 입력한 값을 받아오는 함수입니다.
  • chomp($input)은 입력받은 문자열의 끝에 있는 줄 바꿈 문자를 제거합니다.
  • reverse($input)은 입력받은 문자열을 뒤집습니다.
  • length($input)은 입력받은 문자열의 길이를 반환합니다.
반응형