특정 문자열을 포함하지 않는 PHP 정규식 사용 방법: 먼저 PHP 샘플 파일을 만든 다음 정규식 "preg_match("/[^(abc)]/s", $str, $arr);"를 사용합니다. 특정 문자열만 포함되어 있는지 확인합니다.
추천: "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 중국어 웹사이트의 기타 관련 기사를 참조하세요!