aug 02, 2019
admin
0
40

perl 정규표현식 예제

정규식 구문의 끝에는 일반 정규식 플래그가 아니지만 일치 또는 대체(m/또는 s////각각)와 같이 수행중인 작업에 적용되는 여러 플래그가 있습니다. 마지막 예제에서는 `i` 한정자와 일치를 보여 주므로 일치 하는 대/소문자를 구분하지 않습니다. 정규식은 정규식 수량자를 사용하여 더 강력해지므로 정규식 구성 요소가 일치하는 문자열에 나타날 수 있는 빈도를 지정할 수 있습니다. 가장 간단한 수량자는 0 또는 1 개의 정량자 또는 ?: 괄호모양문자 클래스에 더 많은 것이 있습니다. 자세한 내용은 펄레샤클래스의 브라케드 문자 클래스에 있습니다. 괄호는 교대를 그룹화하는 데 사용할 수 있습니다. 또한 음수를 사용하여 상대적으로 캡처 그룹을 참조할 수 있으므로 g-1 및 g{-1}은 바로 앞의 캡처 그룹을 참조하고 g-2 및 g{-2}는 모두 그 전에 그룹을 참조합니다. 예를 들어 Perl에는 일반적인 문자 클래스에 대한 몇 가지 약어가 있습니다. 이러한 정의는 Perl이 /a 수정자를 사용하여 ASCII 안전 모드에서 사용하는 정의입니다. 그렇지 않으면 ASCII가 아닌 많은 문자와 일치할 수도 있습니다. 자세한 내용은 펄레차클래스의 백슬래시 시퀀스를 참조하십시오.) 이 자습서에서는 기본 일치, 대/소문자를 구분하지 않는 일치 및 수량자를 포함하여 Perl 정규식을 사용하여 텍스트 문자열을 일치시키는 몇 가지 기술을 소개했습니다. 우리는 프로그램의 출력이 ”일치”를 기대합니다. 그러나, 그것은 아니다.

$s 문자열은 expression이라는 단어가 포함되지 않지만 소문자로 첫 번째 문자 E가 있는 식을 포함하기 때문입니다. 정규식은 이 문서에서 설명하는 매우 특별한 구문과 의미를 가진 문자열과 이 문서에서 참조하는 보조 문서입니다. 문자열을 ”패턴”이라고 합니다. 패턴은 ”target”이라고 하는 다른 문자열이 패턴에 의해 지정된 특성을 가지고 있는지(또는 없는지) 확인하는 데 사용됩니다. 이를 패턴에 대해 대상 문자열을 ”일치”라고 합니다. 보통 상기 매치는 대상이 제1 피연산자이고, 패턴이 두 개의 바이너드 연산자 중 하나인 =~ 및 !~ 에 의해 수행되고, 펄롭의 바인딩 연산자; 패턴은 Perlop의 Regexp Quote와 유사 연산자 중 하나에 의해 일반 문자열에서 변환됩니다. 전역 수정자 /g를 사용하면 일치하는 연산자가 가능한 한 여러 번 문자열 내에서 일치할 수 있습니다. 스칼라 컨텍스트에서 문자열에 대한 연속 일치 는 일치항목에서 일치까지 /g 점프를 가지며 문자열의 위치를 추적합니다.

pos() 함수를 통해 위치를 얻거나 설정할 수 있습니다. 예를 들어(?imsx-imsx … ) 패턴 내에서 적용되는 펄 수정자 중 어느 것이 변경되고, 블록이 처음 보이고 둘러싸는 지점까지 변경사항이 적용됩니다. 펄 수정자를 켜기 전에 문자를 켜고 나중에 문자를 끕니다. 여러 수정자는 정규식 연산자의 동작을 변경합니다. 이러한 수정자는 경기, 대체 및 qr// 연산자의 끝에 나타납니다. 예를 들어 대/소문자를 구분하지 않는 일치를 사용하려면 다른 문자 문자열을 다른 문자 문자열과 교대 메타 문자 `|`와 일치시킬 수 있습니다. 개 나 고양이를 일치시키기 위해, 우리는 정규식 개를 형성한다 |고양이 .

이전과 마찬가지로 Perl은 문자열의 가능한 한 빠른 지점에서 정규식을 일치시키려고 시도합니다. 각 캐릭터 위치에서 펄은 먼저 첫 번째 대안인 개와 일치시키려고 시도합니다. 개가 일치하지 않는 경우, 펄은 다음 대안을 시도합니다, 고양이. cat이 일치하지 않으면 일치가 실패하고 Perl이 문자열의 다음 위치로 이동합니다. 몇 가지 예: (?| pattern) 패턴 내에서 각 ”|” 대안의 시작 부분에 하위 식 수를 재설정합니다. 또한 s///는 이미 대체된 대체 물의 일부를 덮어쓰는 것을 거부합니다. 예를 들어 문자열을 통해 뒤로 이동하지 않고 첫 번째 반복 후에 중지됩니다: Capture group 내용은 동적으로 범위가 정해지며 둘러싸는 블록이 끝날 때까지 또는 다음 단계까지 패턴 외부에서 사용할 수 있습니다. 어느 것이 든 먼저 오는 성공적인 매치.

POST CATEGORIES

Okategoriserade