>  기사  >  백엔드 개발  >  PHP 정규식에서 특정 문자열을 제외하는 방법

PHP 정규식에서 특정 문자열을 제외하는 방법

藏色散人
藏色散人원래의
2020-11-20 09:42:133328검색

특정 문자열을 포함하지 않는 PHP 정규식 사용 방법: 먼저 PHP 샘플 파일을 만든 다음 정규식 "preg_match("/[^(abc)]/s", $str, $arr);"를 사용합니다. 특정 문자열만 포함되어 있는지 확인합니다.

PHP 정규식에서 특정 문자열을 제외하는 방법

추천: "PHP 비디오 튜토리얼"

공통 함수 strstr($str, "abc")
정규 매칭 preg_match("/(abc)?/is", $str); 하지만 특정 문자열이 포함되지 않은 문자열을 일치시키려면 정규식을 사용하는 것이 더 번거롭습니다. 정규식!strstr($str, “abc”);을 사용하지 않으면 문제를 해결할 수 있습니다. . 하지만 정규 표현식을 사용하면 그게 전부입니다. , "/^((?!abc).)*$/is"

//------------------------------------------------ 
代码如下:
 <?php 
  $str = "dfadfadf765577abc55fd"; 
  $pattern_url = "/^((?!abc).)*$/is"; 
  if (preg_match($pattern_url, $str)){ 
  echo "不含有abc!"; 
  }else{ 
  echo "含有abc!"; 
  } 
  ?> 
 
 //------------------------------------------------ 
 结果为:false,含有abc! 
 $str = “2b3c4d5c”; 
 注意:[^(abc)] 这个语法是逐个检查$str中的字符是否不在 a b c中, 
 preg_match(”/[^(abc)]/s”, $str, $arr); 
 其中字符 2 就不在 a b c 中,所以$arr返回值为2; 
 同时匹配,包含字符串 “abc”,而且不包含字符串 “xyz” 
 “/(abc)[^((?!xyz).)*$]/s”


다음은 보충입니다.

string에는 다음과 같은 다른 문자열이 포함되어 있습니다.

1. 일반 함수

strstr($str, "abc");

2. 정규 일치

preg_match("/(abc)/is", $str);

하지만 특정 문자열이 포함되지 않은 문자열을 일치시키려면 정규식을 사용하는 것이 더 번거롭습니다.

1. 정규식을 사용하지 않으면 다음과 같이 문제를 해결할 수 있습니다

!strstr($str, "abc");

2. 그러나 정규식을 사용하면 그게 전부입니다.

preg_match("/^((?!abc).)*$/is", $str);

전체 코드 예제

코드는 다음과 같습니다.

$str = "dfadfadf765577abc55fd"; 
 $pattern_url = "/^((?!abc).)*$/is"; 
 if (preg_match($pattern_url, $str)) 
 { 
 echo "不含有abc!"; 
 } 
 else 
 { 
 echo "含有abc!"; 
 }

결과 is: false, abc가 포함되어 있습니다!

동시에 문자열 "abc"를 포함하고 문자열 "xyz"를 포함하지 않는 정규 표현식을 일치시킵니다:

preg_match("/(abc)[^((?!xyz).)*$] /is" , $str);

이 방법이 효과적입니다. 저는 다음과 같이 사용합니다:

 (?:(?!<\/p>).|\n)*? //匹配不含</p>的一个字符串

하지만 결국 이 방법은 매우 비효율적이라는 것을 알게 되었습니다. 매우 짧은 텍스트를 처리할 때(필요한 텍스트가 10개 있습니다) 정규식의 동일한 부분을 일치시키기 위해) 몇 단어 또는 최대 수십) 시간을 고려할 수 있지만, 큰 기사를 구문 분석하는 데 사용되거나 여러 개의 일치 시간을 변경해야 하는 경우 일치 시간을 변경하면 안 됩니다. 대신 다른 방법을 사용하는 것이 좋습니다(예: 먼저 일치시킬 단락을 구문 분석한 다음 특정 텍스트가 존재하는지 확인). 정규식은 다음을 포함하지 않는 텍스트 필드를 일치시키는 데 매우 효과적인 방법이 아닙니다. 특정 문자열.

위 내용은 PHP 정규식에서 특정 문자열을 제외하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.