정규 표현 식 단일 줄,다 중 줄 모드 소개(사용 설명)
한 줄,여러 줄 모드 는 이해 오류 가 발생 하기 쉽다.
왜 이해 오류 가 발생 하기 쉬 운 가요?그래서 많은 친구 들 이 글자 그대로 이해 하면 다음 과 같은 결론 을 얻 을 수 있다.(하하,방금 사 용 했 습 니 다.저도 이 친구 들 중 한 명 입 니 다)
1.한 줄 은 처음부터 끝까지 일치 합 니 다.여러 줄 은 문자열 과 일치 하면 줄 바 꿈 문자 가 있 으 면 이전 과 일치 합 니 다.
2.한 줄 과 여러 줄 이 충돌 하여 한 번 에 하나의 옵션 만 지정 할 수 있 고 동시에 사용 할 수 없습니다.
이렇게 이해 하면 사실은 이렇게 되 기 쉽다.공식 수첩 에서 뭐라고 하 는 지 봅 시다.
일방 통행,다 중 모드 공식 해석
패턴 문자
묘사 하 다.
s(한 줄)
이 수정자 가 설정 되 어 있 으 면 패턴 의 점 수 는 모든 문자 와 일치 하 며 줄 바 꿈 자 를 포함 합 니 다.이 수정자 가 없 으 면 점 수 는 줄 바 꿈 자 와 일치 하지 않 습 니 다.
m(다 중 줄)
대상 문자열 은 한 줄 의 문자 로 구성 되 어 있 습 니 다.(그러나 실제로 여러 줄 을 포함 할 수 있 습 니 다.)'줄 의 첫 번 째'메타 문자(^)는 문자열 의 시작 위치 만 일치 하고'줄 의 끝'메타 문자($)는 문자열 의 끝 만 일치 합 니 다.이 수정자 가 설정 되면'줄 끝'과'줄 끝'은 대상 문자열 의 임의의 줄 바 꾸 기()이전 이나 이후 와 일치 합 니 다.
위의 설명 을 통 해 이 두 개의 수식 자 는 모두 정규 표현 식 에서 흔히 볼 수 있 는 메타 문자 의 일치 범 위 를 수정 하 는 것 일 뿐 입 니 다."s"수정자,메타 문자"를 추가 하면 줄 바 꿈 문자()와 일치 할 수 있 습 니 다."m"수정자,메타 문자"$"를 추가 하면"문자 앞 에 만 일치 합 니 다.""원 문자"^"는"문자 뒤에 일치 합 니 다.우리 그냥 예 를 들 어 설명 하 자!다음 정규 표현 식 에 대해 서?문자,앞의 절 을 볼 수 있 습 니 다정규 표현 식(regex)탐욕 모드,게 으 름 모드 사용)
예 를 들다
<?php
/// hao123.com
/// script
/**
* script *
* @author chengmo
* @copyright http://blog.chacuo.net/
* @param string $content
* @param int $style
* @return string
*/
function remove_script($content,$style=1)
{
$reg = $style == 1?"%<script.*?>.*?</script>%":"%<script.*?>.*?</script>%s";
return preg_replace($reg,"",$content);
}
$content = file_get_contents('http://www.hao123.com');
echo remove_script($content);
예 를 들다
<?php
/// hao123.com
/// meta
/**
* meta *
* @author chengmo
* @copyright http://blog.chacuo.net/
* @param string $content
* @param int $style
* @return string
*/
function read_meta($content,$style=1)
{
$reg = $style == 1?"%^<meta.*?/>%":"%^<meta.*?>\s+$%m";
preg_match_all($reg,$content,$arr);
return $arr;
}
$content = file_get_contents('http://www.hao123.com');
var_dump(read_meta($content));
후기:s,m 수정자 만 맞 고 몇 개의 특수 원 문자 가 바 뀌 었 습 니 다.정규 표현 식 에 그 몇 개의 메타 문자 가 없다 면.s 를 열 면 m 문자 앞 뒤 에는 변화 가 없습니다.위 에서 hao 123.com 코드 를 읽 는 것 에 대해 우 리 는 s,m 모드 를 계속 동시에 사용 할 수 있 습 니 다.예:"%
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
awk 상용 명령awk 는 모든 입력 줄 을 하나의 기록 으로 인식 하고 그 줄 의 모든 단어 도 메 인 을 하나의 필드 로 인식 합 니 다. ARGC 명령 줄 에 awk 스 크 립 트 가 들 어 오 는 매개...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.