Heim Backend-Entwicklung PHP-Problem So verwenden Sie die PHP-Funktion preg_match_all

So verwenden Sie die PHP-Funktion preg_match_all

May 27, 2019 am 09:38 AM

php preg_match_all函数用于执行一个全局正则表达式匹配,返回完整匹配次数(可能是0),或者如果发生错误返回FALSE。

So verwenden Sie die PHP-Funktion preg_match_all

php preg_match_all函数怎么用?

preg_match_all 函数用于执行一个全局正则表达式匹配。

语法

int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )
Nach dem Login kopieren

搜索 subject 中所有匹配 pattern 给定正则表达式的匹配结果并且将它们以 flag 指定顺序输出到 matches 中。

在第一个匹配找到后, 子序列继续从最后一次匹配位置搜索。

参数说明:

$pattern: 要搜索的模式,字符串形式。

$subject: 输入字符串。

$matches: 多维数组,作为输出参数输出所有匹配结果, 数组排序通过flags指定。

$flags:可以结合下面标记使用(注意不能同时使用PREG_PATTERN_ORDER和 PREG_SET_ORDER):

PREG_PATTERN_ORDER: 结果排序为$matches[0]保存完整模式的所有匹配, $matches[1] 保存第一个子组的所有匹配,以此类推。

PREG_SET_ORDER: 结果排序为$matches[0]包含第一次匹配得到的所有匹配(包含子组), $matches[1]是包含第二次匹配到的所有匹配(包含子组)的数组,以此类推。

PREG_OFFSET_CAPTURE: 如果这个标记被传递,每个发现的匹配返回时会增加它相对目标字符串的偏移量。

offset: 通常, 查找时从目标字符串的开始位置开始。可选参数offset用于 从目标字符串中指定位置开始搜索(单位是字节)。

返回值

返回完整匹配次数(可能是0),或者如果发生错误返回FALSE。

实例

查找匹配 <b> 与 </b> 标签的内容:

&lt;?php
$userinfo = &quot;Name: &lt;b&gt;PHP&lt;/b&gt; &lt;br&gt; Title: &lt;b&gt;Programming Language&lt;/b&gt;&quot;;
preg_match_all (&quot;/&lt;b&gt;(.*)&lt;\/b&gt;/U&quot;, $userinfo, $pat_array);
print_r($pat_array[0]);
?&gt;
Nach dem Login kopieren

执行结果如下所示:

Array
(
    [0] =&gt; &lt;b&gt;PHP&lt;/b&gt;
    [1] =&gt; &lt;b&gt;Programming Language&lt;/b&gt;
)
Nach dem Login kopieren

查找匹配的HTML标签(贪婪):

&lt;?php
//\\2是一个后向引用的示例. 这会告诉pcre它必须匹配正则表达式中第二个圆括号(这里是([\w]+))
//匹配到的结果. 这里使用两个反斜线是因为这里使用了双引号.
$html = &quot;&lt;b&gt;bold text&lt;/b&gt;&lt;a href=howdy.html&gt;click me&lt;/a&gt;&quot;;
 
preg_match_all(&quot;/(&lt;([\w]+)[^&gt;]*&gt;)(.*?)(&lt;\/\\2&gt;)/&quot;, $html, $matches, PREG_SET_ORDER);
 
foreach ($matches as $val) {
    echo &quot;matched: &quot; . $val[0] . &quot;\n&quot;;
    echo &quot;part 1: &quot; . $val[1] . &quot;\n&quot;;
    echo &quot;part 2: &quot; . $val[2] . &quot;\n&quot;;
    echo &quot;part 3: &quot; . $val[3] . &quot;\n&quot;;
    echo &quot;part 4: &quot; . $val[4] . &quot;\n\n&quot;;
}
?&gt;
Nach dem Login kopieren

执行结果如下所示:

matched: &lt;b&gt;bold text&lt;/b&gt;
part 1: &lt;b&gt;
part 2: b
part 3: bold text
part 4: &lt;/b&gt;
matched: &lt;a href=howdy.html&gt;click me&lt;/a&gt;
part 1: &lt;a href=howdy.html&gt;
part 2: a
part 3: click me
part 4: &lt;/a&gt;
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die PHP-Funktion preg_match_all. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was sind die besten Praktiken für die Deduplizierung von PHP -Arrays Was sind die besten Praktiken für die Deduplizierung von PHP -Arrays Mar 03, 2025 pm 04:41 PM

Was sind die besten Praktiken für die Deduplizierung von PHP -Arrays

Kann PHP Array -Deduplizierung die Einzigartigkeit der Schlüsselnamen nutzen? Kann PHP Array -Deduplizierung die Einzigartigkeit der Schlüsselnamen nutzen? Mar 03, 2025 pm 04:51 PM

Kann PHP Array -Deduplizierung die Einzigartigkeit der Schlüsselnamen nutzen?

Was sind die neuesten PHP -Codierungsstandards und Best Practices? Was sind die neuesten PHP -Codierungsstandards und Best Practices? Mar 10, 2025 pm 06:16 PM

Was sind die neuesten PHP -Codierungsstandards und Best Practices?

Wie arbeite ich mit PHP -Erweiterungen und PECL? Wie arbeite ich mit PHP -Erweiterungen und PECL? Mar 10, 2025 pm 06:12 PM

Wie arbeite ich mit PHP -Erweiterungen und PECL?

Wie implementieren Sie Nachrichtenwarteschlangen (Rabbitmq, Redis) in PHP? Wie implementieren Sie Nachrichtenwarteschlangen (Rabbitmq, Redis) in PHP? Mar 10, 2025 pm 06:15 PM

Wie implementieren Sie Nachrichtenwarteschlangen (Rabbitmq, Redis) in PHP?

Muss die PHP -Array -Deduplizierung für Leistungsverluste in Betracht gezogen werden? Muss die PHP -Array -Deduplizierung für Leistungsverluste in Betracht gezogen werden? Mar 03, 2025 pm 04:47 PM

Muss die PHP -Array -Deduplizierung für Leistungsverluste in Betracht gezogen werden?

Was sind die Optimierungstechniken für die Deduplizierung von PHP -Arrays Was sind die Optimierungstechniken für die Deduplizierung von PHP -Arrays Mar 03, 2025 pm 04:50 PM

Was sind die Optimierungstechniken für die Deduplizierung von PHP -Arrays

Wie kann man Reflection verwenden, um den PHP -Code zu analysieren und zu manipulieren? Wie kann man Reflection verwenden, um den PHP -Code zu analysieren und zu manipulieren? Mar 10, 2025 pm 06:12 PM

Wie kann man Reflection verwenden, um den PHP -Code zu analysieren und zu manipulieren?

See all articles