php 에서 문자열 과 정규 표현 식 상세 설명

1.문자열 형식의 특징
1.PHP 는 약 한 형식 언어 로 다른 데이터 형식 은 문자열 함수 작업 에 직접 사용 할 수 있 습 니 다.

<?php
echo substr("123456",2,4);  // 345
echo substr(123456,2,4);    // 345
echo hello;                 // hello , , hello
?>
2.문자열 은'배열'로 문자 의 집합 입 니 다.

<?php
$str = "www.jb51.net";
echo $str[0];
echo $str[1];
echo $str[2];
?>
그러나 문자열 은 진짜 배열 이 아니 라 배열 의 함 수 를 사용 할 수 없습니다.예 를 들 어 count($str)는 문자열 의 길 이 를 되 돌려 주지 않 습 니 다.PHP 엔진 은 문자 와 배열 을 구분 할 수 없어 이의 성 을 발생 시 킵 니 다.PHP 4 부터 괄호 대신 괄호 를 사용 하 였 습 니 다.

<?php
// ,
$str = www.jb51.net;
echo $str{0};
echo $str{1};
echo $str{2};
?>
3.따옴표 변수 분석
PHP 에 서 는 따옴표 나 경계선 문자 로 문자열 을 정의 할 때 변 수 를 해석 합 니 다.

<?php
$arr = array('name' => "dwqs",'add' => "www.ido321.com");
echo "$arr[name]";  // ,
//echo "$arr['name']"; 
echo "{$arr['name']}";  // , ,name
// $square
echo "$square->width"; //
echo "$square->width00 cent"; // ,
echo "{$square->width}width00 cent"; //
?>
2.문자열 출력 함수

3.자주 사용 하 는 문자열 형식 함수

PS:PHP 의 문자열 처리 함 수 는 대부분 원본 문자열 을 수정 하지 않 고 새로운 문자열 을 되 돌려 줍 니 다.
정규 표현 식
정규 표현 식 은 문자열 이 일치 하 는 패턴 을 설명 합 니 다.이 모드 를 통 해 특정한 함수 에서 문자열 을 일치,찾기,교체,구분 등 작업 을 하고 원자,메타 문자 와 패턴 수정 문자 세 부분 으로 구 성 된 문자 모드 입 니 다.
PHP 에는 두 개의 정규 처리 함수 라 이브 러 리 가 있 습 니 다:PCRE 와 POSIX.전자 preg펄 과 호 환 되 는 접두사 이름;후 자 는 ereg접두사 이름.양자 기능 은 비슷 하지만 PCRE 의 효율 은 약간 높다.
펄 언어 와 호 환 되 는 정규 표현 식 처리 함수:

문법
1.1 경계 문자:Perl 과 호 환 되 는 정규 함수 에서 모드 를 사용 할 때 모드 에 경계 부 호 를 추가 해 야 합 니 다.알파벳,숫자,반사 선(\)을 제외 한 모든 문 자 는 정계 기호 로 쓸 수 있다.

<?php
//
echo $m1 = '/<\/\w+/';
echo $m2 = '|(\d{3})-\d|Sm';
echo $m3 = '!^(?i)php[34]!';
echo $m4 = '{^\s+(\s+)?$}';
?>
1.2 원자:원 자 는 알파벳,숫자 와 같은 일반 문 자 를 포함한다.빈 칸,리 턴 같은 인쇄 문자 가 아 닙 니 다.따옴표,*,+등 특수 문자 와 메타 문 자 는'\'로 전 의 를 해 야 합 니 다.사용자 정의 원자 표,예 를 들 어[apj],[a-z];일반적인 문자 형식,예 를 들 어\d,\D.

<?php
// , e-mail
$mail1 = '/^[0-9a-zA-Z]+@[0-9a-zA-Z]+(\.[0-9a-zA-Z]+){0,3}$/';
$mail2 = '/^\w+@\w+(\.\w+){0,3}$/';
?>
1.3 원 문자:정규 표현 식 을 구축 하 는 데 사용 되 는 특수 한 의 미 를 가 진 문자 입 니 다.Perl 은*,+,?와 같은 다양한 메타 문 자 를 사용 하여 검색 할 수 있 습 니 다.일반적인 메타 문 자 는 다음 과 같 습 니 다.

1.4 모드 수정 문자:정규 경계 문자 외 에 사용 하고 정규 일치,교체 등 기능 을 확장 합 니 다.

2.펄 과 호 환 되 는 정규 표현 식 함수
2.1 preg_match(string pattern,string subject[,array matches]):문자열 을 찾 는 데 사용 합 니 다.매개 변수 설명:
pattern 은 정규 입 니 다.subject 는 처리 해 야 할 문자열 입 니 다.선택 한 matches 는 pattern 에 저 장 된 각 키 모드 의 일치 결 과 를 저장 합 니 다.matches[0]는 pattern 과 일치 하 는 전체 내용 을 저장 합 니 다.matches[1]는 pattern 의 첫 번 째 작은 괄호 에 일치 하 는 내용 을 저장 합 니 다.

<?php
header("content-type:text/html;charset=utf8");
$pattern = '/(http):\/\/(www)\.([^\.\/]+)\.(com|net|org)/i';
$subject = " :http://www.ido321.com";
if(preg_match($pattern, $subject,$matches)){
echo " URL :".$matches[0]."<br/>";  // 1
echo "URL :".$matches[1]."<br/>";// 2 1
echo "URL :".$matches[2]."<br/>";// 3 2
echo "URL :".$matches[3]."<br/>";// 4 3
echo "URL :".$matches[4]."<br/>";// 5 4
}
?>
결실

preg_match_all()과 pregmatch()함수 와 유사 합 니 다.전 자 는 문자열 의 끝 까지 일치 하고 후 자 는 첫 번 째 일치 후 일치 하지 않 습 니 다.
2.2 preg_grep(string pattern,array iput):배열 의 요 소 를 일치 시 키 고 정규 와 일치 하 는 배열 단원 을 되 돌려 줍 니 다.매개 변수 설명:
pattern 은 정규 이 고 input 는 일치 하 는 배열 이 필요 합 니 다.

<?php
$arr = array('Linux RedHat9.0','Apache2.2.9','MySQL5.0.51','PHP5.2.6','LAMP','100');
$version = preg_grep('/^[a-zA-Z]+(\d|\.)+$/',$arr);
// :Array([1]=>Apache2.2.9 [2]=>MySQL5.0.51 [3]=>PHP5.2.6)
print_r($version);
?>
2.3 preg_replace(mixed pattern,mixed replacement,mixed subject[,int limit]):문자열 교체.설명:
이 함 수 는 subject 에서 pattern 과 일치 하 는 항목 을 검색 하고 replacement 으로 대체 합 니 다.limit 는 일치 하 는 횟수,즉 교체 횟수 를 제한 하 는 데 사 용 됩 니 다.

<?php
$pattern = '/<[\/\!]*?[^<>]*?/is';
$text = ' <b> </b> <u> </u> <i> </i>';
echo preg_replace($pattern,"",$text);  // HTML
echo preg_replace($pattern,"",$text,2); // 2 HTML
?>
2.4 preg_split(string pattern,string subject[,int limit[,int flags]]):문자열 을 분할 합 니 다.설명:
함수 가 배열 을 되 돌려 줍 니 다.배열 요 소 는 subject 에서 pattern 과 경계 로 분 단 된 문자열 을 포함 하고 limit 의 미 는 2.3 입 니 다.flags 의 미 는 문 서 를 참고 하 십시오.

<?php
//
$kerwords = preg_split("/[\s,]+/","hypertext language,programming");
// :Array([0]=>hypertext [1]=>language,[2[=>programming)
print_r($kerwords);
?>

좋은 웹페이지 즐겨찾기