PHP में नामित कैप्चर ग्रुप
आइए याद करें कि हमने रेगुलर एक्सप्रेशन के अंदर कैप्चर ग्रुप का उपयोग कैसे किया था:
<?php
$res = preg_replace('#([a-z])\1#', '!', $str);
?>
कभी-कभी ऐसी स्थितियाँ होती हैं जब कैप्चर ग्रुप को उसके नंबर के बजाय उसके नाम से संदर्भित करना अधिक सुविधाजनक होता है। इसके लिए हमें कैप्चर ग्रुप को एक नाम देना होगा:
<?php
$res = preg_replace('#(?<letter>[a-z])#', '!', $str);
?>
अब हम इस कैप्चर ग्रुप को सिंटैक्स \k<name>
के माध्यम से इस तरह एक्सेस कर सकते हैं:
<?php
$res = preg_replace('#(?<letter>[a-z])\k<letter>#', '!', $str);
?>
वर्णित नामित कैप्चर ग्रुप के कुछ और वैकल्पिक सिंटैक्स हैं: (?P=name),
\k'name', \k{name}.
एक स्ट्रिंग दी गई है:
<?php
$str = '12:59:59 12:59:12 09:45:09';
?>
ऐसी सभी सबस्ट्रिंग ढूंढें जहां समय के घंटे, सेकंड के बराबर हों।