perl 정규식 예제

„알 수 없음”은 의미가 아직 결정되지 않은 코드 포인트에 적용됩니다. Perl은 현재 스크립트 실행, 이러한 코드 포인트 중 하나로 구성된 단일 문자열과 일치합니다. 그러나 이들 중 하나를 포함하는 하나의 코드 포인트보다 긴 문자열은 스크립트 실행으로 간주되지 않습니다. 정규식 구문의 끝에는 일반 정규식 플래그가 아니지만 일치 또는 대체(m/또는 s////각각)와 같이 수행중인 작업에 적용되는 여러 플래그가 있습니다. 입력 문자열을 소비하지 않고 연기된 정규식을 너무 많이 실행하면 치명적인 오류가 발생합니다. 이러한 경우 깊이는 perl로 컴파일되므로 사용자 지정 빌드로 변경할 수 있습니다. 예를 들어 fooKbar는 텍스트 „foobar”와 일치하여 $0에 대한 일치 „막대”와 $`에 대한 „foo”를 반환합니다. 변수 너비 뒤의 어설션을 시뮬레이션하는 데 사용할 수 있습니다. Q…E 내의 모든 것은 /x의 영향을 받지 않습니다. 또한 /x는 단일 다중 문자 구문 내에서 공간 해석에 영향을 주지 않습니다. 예를 들어 x{…}에서는 /x 수정자에 관계없이 공백이 있을 수 없습니다.

{3} 또는 {5,}와 같은 수량자도 마찬가지입니다. 마찬가지로(?:…) 사이의 공백은 „(„”” 및”:”) 사이에 있을 수 없습니다. 이러한 구문에 대한 구분 기호 내에서 허용된 공백은 /x의 영향을 받지 않으며 구문에 따라 달라집니다. 예를 들어, x{…}에는 헥사데어 숫자에 공백이 없기 때문에 공백이 있을 수 없습니다. 그러나 유니코드 속성에는 공백이 있을 수 있으므로 p{…}에는 유니코드 규칙을 따르는 공백이 있을 수 있으며, 이 공간은 p{} 및 perluniprops의 P{}를 통해 액세스할 수 있는 속성을 볼 수 있습니다. 연산자 =~는 바인딩 연산자입니다. 전체 식은 정규식 정규식이 문자열을 성공적으로 일치할 수 있는지 여부를 나타내는 값을 반환합니다. g 및 k 표기는 펄 5.10.0에서 도입되었다.

이전에는 명명되거나 상대적인 번호가 매겨진 캡처 그룹이 없었습니다. 절대 번호가 매겨진 그룹은 1 , 2 등을 사용하여 언급되었으며,이 표기는 여전히 허용됩니다 (그리고 항상 가능할 것입니다). 그러나 10은 10번째 캡처 그룹 또는 옥탈의 서수 문자가 010(ASCII의 백스페이스)인 문자를 의미할 수 있으므로 9개 이상의 캡처 그룹이 있는 경우 일부 모호성이 발생합니다. Perl은 10을 백레퍼런스로 해석하여 최소 10개의 왼쪽 괄호가 열리기 전에 열어 놓은 경우에만 이러한 모호성을 해결합니다. 마찬가지로 11은 최소 11개의 왼쪽 괄호가 열리기 전에 열린 경우에만 백레퍼런스입니다. 등등. 1 ~ 9는 항상 백참조로 해석됩니다. 이러한 위험을 설명하는 몇 가지 예가 아래에 있습니다. 그룹을 캡처하는 것을 의미하는 경우 항상 g{} 또는 g를 사용하여 모호성을 피할 수 있습니다. 그리고 항상 o{}를 사용 하거나 77 아래, 선행 0으로 패딩 된 3 자리를 사용 하 여 팔각형 상수에 대 한 선행 0 은 옥탈 상수를 의미 하기 때문에. 1) 이전 정규식에서는 물음표가 드물기 때문에 이 것과 일치하는 최소 구문에 대해 물음표가 선택되었으며, 2) 물음표가 표시될 때마다 중지하고 정확히 무슨 일이 일어나고 있는지 „질문”해야 합니다. 그건 심리학….

이미 일치하는 경우 nth 그룹화 된 하위 표현식을 일치시다. 그렇지 않으면 문자 코드의 팔각형 표현을 나타냅니다. 또한 이 수정자에서 대/소문자를 구분하지 않는 일치는 유니코드 문자의 전체 집합에서 작동합니다. 켈빈 사인은 예를 들어 문자 „k” 및 „K”와 일치합니다. 라틴어 작은 LIGATURE FF는 „ff”시퀀스와 일치하며, 준비되지 않은 경우 헥사드상 상수처럼 보이게 하여 또 다른 잠재적 보안 문제를 나타낼 수 있습니다.