>백엔드 개발 >PHP 문제 >PHP에서 문자열의 문자를 제외하기 위해 일반 규칙을 사용하는 방법

PHP에서 문자열의 문자를 제외하기 위해 일반 규칙을 사용하는 방법

青灯夜游
青灯夜游원래의
2022-12-15 15:30:295637검색

두 가지 방법: 1. preg_replace()를 사용하여 정규식 검색 및 바꾸기를 수행합니다. 문자열에서 일치하는 문자를 null 문자로 바꾸면 됩니다. 구문은 "preg_replace(regular, "", $str )"입니다. 2. preg_match_all()을 사용하여 문자열의 정규식과 일치하는 모든 결과를 검색합니다. 일치하는 각 결과는 배열 $array에 배치됩니다. 구문은 "preg_match_all(regular, $str, $array);"입니다.

PHP에서 문자열의 문자를 제외하기 위해 일반 규칙을 사용하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 8.1, DELL G3 컴퓨터

정규 표현식이란 무엇입니까

정규 표현식은 문자열 연산을 위한 논리 공식입니다. 미리 정의된 특정 문자와 이러한 특정 문자의 조합을 사용하여 "규칙 문자열"을 형성합니다. 이 "규칙 문자열"은 문자열에 대한 필터링 논리를 표현하는 데 사용됩니다.

정규식은 특정 규칙으로 패턴을 구성하고 이를 입력 문자열 정보와 비교한 후 특정 함수에서 이를 사용하여 문자열 일치, 검색, 대체, 분할 등의 작업을 수행합니다.

php는 정규식을 사용하여 문자열을 필터링합니다.

PHP에서는 정규식을 사용하여 문자열을 필터링하거나 특정 문자를 제외(삭제)하거나 추출할 수 있습니다.

방법 1. preg_replace() 함수를 사용하세요.

preg_replace() 함수는 정규식 검색 및 치환을 수행할 수 있으며 강력한 문자열 교체 처리 함수입니다.

preg_replace($pattern, $replacement, $subject [, $limit = -1 [, &$count]])
  • 는 주제에서 패턴과 일치하는 부분을 검색하여 대체 항목으로 바꾸는 것을 의미합니다. 선택적 매개변수 제한은 최대 대체 횟수를 설정하는 데 사용됩니다(기본값은 -1, 무제한).

예:

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);  
$str =&#39;0我是123456一段测试的字789符串0&#39;;
echo "原字符串:".$str."<br>";
$result = preg_replace("/[^0-9]/", "", $str);
echo "过滤后字符串:".$result;
?>

preg_replace("/[^0-9]/", "", $str)0~9를 제외한 일치를 의미하며 이러한 문자를 null 문자로 바꾸면(즉, 해당 문자 삭제) 숫자만 남게 됩니다. preg_replace("/[^0-9]/", "", $str)的意思为匹配除了0~9间的数字以外的字符,并将这些字符替换为空字符(即删除这些字符),那么就只剩下数字字符了:

PHP에서 문자열의 문자를 제외하기 위해 일반 규칙을 사용하는 방법

方法2:使用preg_match_all()函数

preg_match_all()函数可以搜索字符串中所有可以和正则表达式匹配的结果,是一个执行全局正则表达式匹配的函数,它的语法格式为:

preg_match_all($pattern, $subject [, &$matches [, $flags = PREG_PATTERN_ORDER [, $offset = 0 ]]])
  • $pattern    正则表达式    

  • $subject    进行匹配的字符串    

  • $matches    所有匹配结果(数组)    

preg_match_all() 将实现全部结果的匹配,如果想要匹配成功一次后停止匹配,需要使用 preg_match() 函数。

示例:

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);  
$str =&#39;0我是123456一段测试的字789符串0&#39;;
echo "原字符串:".$str."<br><br>";

$result = &#39;&#39;;
preg_match_all(&#39;/\d+/&#39;,$str,$array);
echo "过滤结果:";
var_dump($array);


foreach($array as $arr){
	foreach($arr as $value){
		$result .= $value;
	}
}
echo "过滤后字符串:".$result;
?>

preg_match_all('/d+/',$str,$array)的意思为在字符串$str中多次查找只包含0~9间数字字符的子串,将每次的匹配结果放在一个数组$array中。我们使用var_dump($array)来输出这个数组看看:

PHP에서 문자열의 문자를 제외하기 위해 일반 규칙을 사용하는 방법

会发现结果数组$array

PHP에서 문자열의 문자를 제외하기 위해 일반 규칙을 사용하는 방법

방법 2: preg_match_all() 함수

preg_match_all() 함수를 사용하여 문자 검색 가능 문자열의 모든 결과 정규식 일치는 전역 정규식 일치를 수행하는 함수입니다. 구문 형식은 다음과 같습니다.

foreach($array as $arr){
	foreach($arr as $value){
		$result .= $value;
	}
}
echo "过滤后字符串:".$result;
🎜🎜🎜$pattern 정규식 🎜🎜🎜🎜$subject 일치할 문자열 🎜🎜🎜🎜$matches 일치하는 모든 결과(배열) ) 🎜🎜🎜🎜preg_match_all()은 한 번의 성공적인 일치 후에 일치를 중지하려면 preg_match() 함수를 사용해야 합니다. 🎜🎜예: 🎜rrreee🎜preg_match_all('/d+/',$str,$array)는 $str 문자열의 여러 검색에 0~9 A만 포함됨을 의미합니다. code> 사이의 숫자 부분 문자열이며 일치하는 각 결과는 $array 배열에 배치됩니다. var_dump($array)를 사용하여 이 배열을 출력하고 다음을 확인하세요. 🎜🎜🎜🎜결과 배열 $array는 2차원 배열이고 일치하는 결과를 포함하는 요소를 찾을 수 있습니다. 내부 배열입니다. 이러한 요소를 문자열로 연결하려면 두 가지 수준의 foreach 루프를 중첩해야 합니다. 🎜rrreee🎜🎜🎜🎜권장 학습: "🎜PHP 비디오 튜토리얼🎜"🎜

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

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