Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion reference/pcre/constants.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e62b1e3989a5049c052bc547bb6bf175ada8e48d Maintainer: PhilDaiguille Status: ready -->
<!-- EN-Revision: cdbe6f9826baecd4a6c05f1c95ea47d1d8f32551 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->

<appendix xml:id="pcre.constants" xmlns="http://docbook.org/ns/docbook">
Expand Down Expand Up @@ -102,6 +102,11 @@
incluir los subpatrones sin coincidencia en <varname>$matches</varname> con un valor a &null;.
Sin esta constante, los subpatrones sin coincidencia son devueltos con una cadena vacía, como si la coincidencia estuviera vacía.
Definir esta constante permite distinguir estos dos casos.
Con <function>preg_match</function>, los subpatrones sin coincidencia
finales son omitidos por completo de <varname>$matches</varname> a menos
que se utilice esta bandera; a partir de PHP 7.4.0, la bandera los reporta
como &null;, de modo que <varname>$matches</varname> siempre tenga el
mismo tamaño.
</entry>
<entry>7.2.0</entry>
</row>
Expand Down
44 changes: 41 additions & 3 deletions reference/pcre/functions/preg-match.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: aa5a948a110f87b5ca4d2510288e0ad37e21ead0 Maintainer: PhilDaiguille Status: ready -->
<!-- EN-Revision: cdbe6f9826baecd4a6c05f1c95ea47d1d8f32551 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.preg-match" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
Expand Down Expand Up @@ -122,8 +122,12 @@ Array
<term><constant>PREG_UNMATCHED_AS_NULL</constant></term>
<listitem>
<para>
Si este flag es pasado, los subpatrones no coincidentes son reportados como &null;;
de lo contrario son reportados como una <type>string</type> vacía.
Si este flag es pasado, los subpatrones no coincidentes son reportados
como &null; y son siempre incluidos en los resultados (incluyendo los
finales). Sin este flag, los subpatrones no coincidentes que son
seguidos por un subpatrón coincidente son reportados como una
<type>string</type> vacía, mientras que los subpatrones no
coincidentes finales son omitidos por completo de los resultados.
<informalexample>
<programlisting role="php">
<![CDATA[
Expand All @@ -132,6 +136,12 @@ preg_match('/(a)(b)*(c)/', 'ac', $matches);
var_dump($matches);
preg_match('/(a)(b)*(c)/', 'ac', $matches, PREG_UNMATCHED_AS_NULL);
var_dump($matches);

// Subpatrones no coincidentes finales:
preg_match('/(a)(b)?(c)?/', 'a', $matches);
var_dump($matches);
preg_match('/(a)(b)?(c)?/', 'a', $matches, PREG_UNMATCHED_AS_NULL);
var_dump($matches);
?>
]]>
</programlisting>
Expand All @@ -158,6 +168,22 @@ array(4) {
[3]=>
string(1) "c"
}
array(2) {
[0]=>
string(1) "a"
[1]=>
string(1) "a"
}
array(4) {
[0]=>
string(1) "a"
[1]=>
string(1) "a"
[2]=>
NULL
[3]=>
NULL
}
]]>
</screen>
</informalexample>
Expand Down Expand Up @@ -275,6 +301,18 @@ Array
</row>
</thead>
<tbody>
<row>
<entry>7.4.0</entry>
<entry>
Cuando se utiliza el flag <constant>PREG_UNMATCHED_AS_NULL</constant>,
los grupos de captura no coincidentes finales ahora también son
incluidos en el resultado con el valor &null; (o
<literal>[null, -1]</literal> cuando
<constant>PREG_OFFSET_CAPTURE</constant> también es utilizado), de modo
que <varname>$matches</varname> siempre tenga el mismo tamaño.
Anteriormente, eran omitidos.
</entry>
</row>
<row>
<entry>7.2.0</entry>
<entry>
Expand Down