In this post, we will solve Branch Reset Groups HackerRank Solution. This problem (Branch Reset Groups) is a part of HackerRank Regex series.
Task
NOTE – Branch reset group is supported by Perl, PHP, Delphi and R.
(?!regex)
A branch reset group consists of alternations and capturing groups. (?|(regex1)|(regex2))
Alternatives in branch reset group share same capturing group.
Task
You have a test string S.
Your task is to write a regex which will match S, with following condition(s):
- S consists of 8 digits.
- S must have “—“, “-“, “.” or “:” separator such that string S gets divided in 4 parts, with each part having exactly two digits.
- S string must have exactly one kind of separator.
- Separators must have integers on both sides.
Valid S
12-34-56-78
12:34:56:78
12---34---56---78
12.34.56.78
Invalid S
1-234-56-78
12-45.78:10
Note
This is a regex only challenge. You are not required to write any code.
You only have to fill the regex pattern in the blank (_________
).
Branch Reset Groups – HackerRank Solution
PHP
<?php $Regex_Pattern = '/^\d{2}(-(?:--)?|\.|:)\d{2}\1\d{2}\1\d{2}$/'; //Do not delete '/'. Replace __________ with your regex. $handle = fopen ("php://stdin","r"); $Test_String = fgets($handle); if(preg_match($Regex_Pattern, $Test_String, $output_array)){ print ("true"); } else { print ("false"); } fclose($handle); ?>
Note: This problem (Branch Reset Groups) is generated by HackerRank but the solution is provided by CodingBroz. This tutorial is only for Educational and Learning purpose.