펄 정규 표현식
정규식 (정규 표현식) 캐릭터 라인 교체하거나 조건을 제거하는 문자열과 일치하는 특정 문자열이 포함되어 있는지 여부를 확인하는 데 사용할 수있는 문자열의 집합을 설명하는 문자열에서 문자열을 일치 등등.
언어의 펄 정규식 기능은 기본적으로, 가장 강력한 공통 언어, 그들은 참조 펄 정규 표현식 많은 언어 설계 정규 표현식 지원이 매우 강력하다.
펄 정규 표현식의 세 가지 형태, 교체 및 변환을 일치 :
경기 : m /
/ (또한 / 약칭 / 생략 m) 교체 : S /
/ / 변환 : TR /
/ /
이 세 가지 형태와는= ~ 또는 일반적으로! ~= ~이 경기를 나타내는 사용으로! ~이 일치하지 않았다.
경기 연산자
다음과 같이 문자열이나 정규 표현식 문을 일치시키는 데 사용 경기 연산자 m은 // 예를 들어, 코드를 "실행"에서 스칼라 $ 표시 줄에 맞게 :
#!/usr/bin/perl $bar = "I am w3big site. welcome to w3big site."; if ($bar =~ /run/){ print "第一次匹配\n"; }else{ print "第一次不匹配\n"; } $bar = "run"; if ($bar =~ /run/){ print "第二次匹配\n"; }else{ print "第二次不匹配\n"; }
위의 프로그램은 출력은 다음과 같습니다
第一次匹配 第二次匹配
패턴 일치 수정
다음과 같이 수정 일치하는 몇 가지 일반적인 패턴이있다 :
수정 | 기술 |
---|---|
나는 | 대문자 모드를 무시 |
m | 멀티 라인 모드 |
오 | 한 번만 할당 |
에스 | 한 줄 모드 "."일치 "\ n을"(기본값은 일치하지 않습니다) |
엑스 | 빈 모드를 무시 |
g | 글로벌 경기 |
CG | 글로벌 매칭의 실패 후, 다시 일치하는 문자열을 찾을 수 있습니다 |
정규식 변수
펄 세 특별한 이름 변수의 값과 일치하도록 처리 한 후에 존재하는 것
- 문자열 정합부 앞부분 : $`
- $ & : 일치하는 문자열
- $ ': 아니 일치 나머지 문자열
함께이 세 가지 변수 경우 원래 문자열을 얻을 것이다.
다음 예는 다음과 같다 :
#!/usr/bin/perl $string = "welcome to w3big site."; $string =~ m/run/; print "匹配前的字符串: $`\n"; print "匹配的字符串: $&\n"; print "匹配后的字符串: $'\n";
위 프로그램의 출력은 다음과 같습니다
匹配前的字符串: welcome to 匹配的字符串: run 匹配后的字符串: oob site.
교체 연산자
교체 /// 연산자의 운영자는 특정 문자열을 대체 할 새로운 캐릭터의 사용의 확대와 일치하는 것이다. 다음과 같이 기본 형식은 다음과 같습니다
s/PATTERN/REPLACEMENT/;
패턴은 문자열을 대체 할 수있는 패턴, 교체하였습니다.
예를 들어, "구글"우리는 다음과 같은 문자열을 대체 할 것은 "w3big"입니다 :
#!/usr/bin/perl $string = "welcome to google site."; $string =~ s/google/w3big/; print "$string\n";
위 프로그램의 출력은 다음과 같습니다
welcome to w3big site.
교환 작업 개질제
다음과 같이 동작 수정 바꾸기 :
수정 | 기술 |
---|---|
나는 | 당신이 추가하는 경우 "i"가 수식에, 다음 정규 대소 문자 구분은 "이이"와 "A"는 동일 취소됩니다. |
m | 각 라인의 시작 부분에서 "^"이다 : 기본은 각 라인의 시작과 끝 문자열을 참조한다,에 "m"수정과 결합 된 경우 일반 문자열을위한 일반 "^"최종 "$"를 시작합니다 끝이 "$"입니다. |
오 | 표현은 한 번만 실행됩니다. |
에스 | 당신은 수정에서 "s"를 추가하는 경우, 디폴트. ""개행 문자를 제외한 모든 문자를 대신가 줄 바꿈이 포함, 모든 문자가 될 것이다! |
엑스 | 당신이 수정을 추가하는 경우가 탈출하지 않는 한, 표현 공백 문자는 무시됩니다. |
g | 일치하는 모든 문자열을 교체합니다. |
전자 | 대체 문자열 식으로 |
변환 연산자
다음은 변환 연산자 관련 수정입니다 :
수정 | 기술 |
---|---|
C | 모든 문자의 변환을 지정하지 |
디 | 지정된 모든 문자를 삭제 |
에스 | 동일한 출력 특성의 복수의 축소 |
모든 소문자 변수 $ 문자열을 대문자로 변환 다음 예제 :
#!/usr/bin/perl $string = 'welcome to w3big site.'; $string =~ tr/a-z/A-z/; print "$string\n";
위 프로그램의 출력은 다음과 같습니다
WELCOME TO w3big SITE.
다음의 예는 삭제 된 문자를 반복 / s 변수 $ 문자열을 사용합니다 :
#!/usr/bin/perl $string = 'w3big'; $string =~ tr/a-z/a-z/s; print "$string\n";
위 프로그램의 출력은 다음과 같습니다
runob
더 많은 예제 :
$string =~ tr/\d/ /c; # 把所有非数字字符替换为空格 $string =~ tr/\t //d; # 删除tab和空格 $string =~ tr/0-9/ /cs # 把数字间的其它字符替换为一个空格。
더 많은 정규 표현식 규칙
식 | 기술 |
---|---|
. | 줄 바꿈을 제외한 모든 문자와 일치 |
X? | 경기 0 또는 문자열 x |
X * | 대전 0 번 이상 X 문자열하지만 가능한 일치 최소 |
X + | 경기 1 회 이상의 X 문자열 만 가능한 일치의 최소 수 |
. * | 모든 문자 일치 0 번 이상 |
. + | 모든 문자에 의한 경기 1 회 이상 |
{M} | 정확히 m의 지정된 문자열과 일치 |
{M, N} | 일치 m 또는 더 많거나 적은 특정 문자열 N |
{M} | 경기 m 이상의 지정된 문자열 |
[] | 어떤 내 캐릭터 [일치] |
[^] | 경기는]의 문자를 충족하지 않습니다 |
[0-9] | 모든 숫자 일치 |
[아즈] | 모두 소문자 알파벳 문자와 일치 |
[^ 0-9] | 모든 숫자가 아닌 문자와 일치 |
[^ 아즈] | 모든 소문자 알파벳 문자와 일치 |
^ | 시작과 일치하는 문자 |
$ | 문자의 마지막 문자를 찾습니다 |
\ D | 숫자 문자 및 [0-9] 같은 구문을 일치 |
\ D + | 여러 숫자 문자열을 일치하고 [0-9] + 구문으로 |
\ D | \ d를 가진 다른, 비 - 디지털 |
\ D + | \ d 개 +와 다른, 비 - 디지털 |
\ W | 문자 또는 숫자의 문자열와 [A-ZA-Z0-9]는 구문으로 |
\ W + | 그리고 [A-ZA-Z0-9] + 구문으로 |
\ W | 영어 이외의 문자 나 숫자, 문자열 및 [^ A-ZA-Z0-9] 같은 구문 |
\ W + | 그리고 [^ A-ZA-Z0-9] + 구문으로 |
\ S | 공간, 그리고 [\ n 개의 \ t의 \ 연구 \ f를] 같은 구문 |
\ S + | 그리고 [\ n 개의 \ T는 \ r에 \ f를] +로 |
\ S | 비 공간, [^ \ n을 \의 t \ r에 \ f를] 같은 구문 |
\ S + | 그리고 [^ \ n을 \ T는 \ r에 \ f를] + 구문으로 |
\ B | 영어 문자, 숫자 경계 문자열 일치 |
\ B | 알파벳에서 일치하지 않는, 숫자 경계 문자열 |
A | B | C | 문자열과 일치하는 문자 또는 b 또는 c 문자와 일치 |
ABC | ABC 일치하는 문자열 (패턴) (포함)은 그것이 매우 유용한 구문, 문자열을 찾으려면이 기호를 기억합니다. 첫 번째 문자열을 (내) 발견이 변수가 $ 1 \ 1이된다 변수, 두 번째 (내부)의 등 아래로 $ 2 \이 변수에 문자열 변수를 발견합니다. |
/ 패턴 / 난 | 나는이 매개 변수는 문자 앞에 추가 즉, 검색 문자열, 영어의 경우 질문을 무시하고. \ 당신이 패턴 모드에서 특수 문자를 찾으려면, 같은이 "*",이 때, 영어의 경우를 무시 나타냅니다 \ 기호,이 특수 문자가 실패 할 수 있습니다 |