>백엔드 개발 >PHP 문제 >PHP preg match의 사용법은 무엇입니까?

PHP preg match의 사용법은 무엇입니까?

coldplay.xixi
coldplay.xixi원래의
2020-09-30 09:42:522211검색

php preg 일치 사용법은 정규식 일치를 수행하는 것이며 구문은 [int preg_match (string $pattern, string $subject [, array &$matches [, int $flags.]]]입니다.

PHP preg match의 사용법은 무엇입니까?

preg_match 함수 정규식 일치를 수행하는 데 사용됩니다.

Syntax

int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )

정규식에 의해 지정된 패턴과 주제 간의 일치를 검색합니다.

매개변수 설명:

  • $pattern: 패턴입니다.

  • $subject: 입력 문자열

  • $matches: 매개변수 일치가 제공되면 $matches[0]가 전체 패턴과 일치하는 텍스트로 채워집니다. ]에는 첫 번째로 캡처된 하위 그룹과 일치하는 텍스트가 포함됩니다.

  • $flags: 플래그는 다음 플래그 값으로 설정할 수 있습니다.

    PREG_OFFSET_CAPTURE: 이 플래그가 전달되면 각각에 대해 일치 항목이 발생합니다. (대상 문자열 기준) 문자열 오프셋과 함께 반환됩니다. 참고: 각 요소가 0번째 문자열과 일치하도록 match 매개변수에 채워진 배열을 변경합니다. 첫 번째 요소는 대상에서 일치하는 문자열의 오프셋입니다. string subject.

  • offset: 일반적으로 검색은 대상 문자열의 시작 부분에서 시작됩니다. 선택적 매개변수 offset은 대상 문자열의 시작 위치를 지정하는 데 사용됩니다(단위는 ).

반환 값

패턴에 대한 일치 수를 반환합니다. preg_match()는 첫 번째 일치 이후 검색을 중지하기 때문입니다. , 오류가 발생하면 preg_match()는 FALSE를 반환합니다.

1 검색 텍스트 문자열 "php":

<?php
//模式分隔符后的"i"标记这是一个大小写不敏感的搜索
if (preg_match("/php/i", "PHP is the web scripting language of choice.")) {
    echo "查找到匹配的字符串 php。";
} else {
    echo "未发现匹配的字符串 php。";
}
?>

실행 결과는 다음과 같습니다.

查找到匹配的字符串 php。

2. "단어"라는 단어를 검색하세요

<?php
/* 模式中的\b标记一个单词边界,所以只有独立的单词"web"会被匹配,而不会匹配
 * 单词的部分内容比如"webbing" 或 "cobweb" */
if (preg_match("/\bweb\b/i", "PHP is the web scripting language of choice.")) {
    echo "查找到匹配的字符串。\n";
} else {
    echo "未发现匹配的字符串。\n";
}
 
if (preg_match("/\bweb\b/i", "PHP is the website scripting language of choice.")) {
    echo "查找到匹配的字符串。\n";
} else {
    echo "未发现匹配的字符串。\n";
}
?>

실행 결과는 다음과 같습니다.

查找到匹配的字符串。
未发现匹配的字符串。

3. URL에서 도메인 이름을 가져옵니다

<?php
// 从URL中获取主机名称
preg_match(&#39;@^(?:http://)?([^/]+)@i&#39;,
    "http://www.runoob.com/index.html", $matches);
$host = $matches[1];
 
// 获取主机名称的后面两部分
preg_match(&#39;/[^.]+\.[^.]+$/&#39;, $host, $matches);
echo "domain name is: {$matches[0]}\n";
?>

실행 결과는 다음과 같습니다.

domain name is: runoob.com

4. 명명된 하위 그룹 사용

<?php
 
$str = &#39;foobar: 2008&#39;;
 
preg_match(&#39;/(?P<name>\w+): (?P<digit>\d+)/&#39;, $str, $matches);
 
/* 下面例子在php 5.2.2(pcre 7.0)或更新版本下工作, 然而, 为了后向兼容, 上面的方式是推荐写法. */
// preg_match(&#39;/(?<name>\w+): (?<digit>\d+)/&#39;, $str, $matches);
 
print_r($matches);
 
?>

실행 결과는 다음과 같습니다.

Array
(
    [0] => foobar: 2008
    [name] => foobar
    [1] => foobar
    [digit] => 2008
    [2] => 2008
)

프로그래밍에 대해 더 자세히 알고 싶다면

php training
칼럼

을 주목해주세요!

위 내용은 PHP preg match의 사용법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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