Поскольку ваши форматы - это просто текстовые строки,
+xx xx xxxxxxxx
xxxx xxxxxx
xxxxx xxxxxx
xxxxxxxxxxx
+xx xxxxxxxxxx
xxxx xxxxxxxxxx
Если вы запускаете свои форматы с помощью этого инструмента
это даст вам регулярное выражение, подобное этому
\+xx [ ] xx
(?: [ ] )?
xxxxxxxx
| xxxx
(?:
[ ] xxxxxx
(?: xxxx )?
| x
(?: [ ] )?
xxxxxx
)
где вы просто заменяете [ ]
на \s{1,9}
и x
на \d
давая ваше последнее регулярное выражение
\+\d{2}\s{1,9}\d{2}(?:\s{1,9})?\d{8}|\d{4}(?:\s{1,9}\d{6}(?:\d{4})?|\d(?:\s{1,9})?\d{6})
https://regex101.com/r/nF2L9T/1
\+ \d{2} \s{1,9} \d{2}
(?: \s{1,9} )?
\d{8}
|
\d{4}
(?:
\s{1,9} \d{6}
(?: \d{4} )?
| \d
(?: \s{1,9} )?
\d{6}
)
Поскольку это полноценный троичный три, он может быть в разы быстрее обычного
куча чередований.
Regex1: \+\d{2}\s{1,9}\d{2}(?:\s{1,9})?\d{8}|\d{4}(?:\s{1,9}\d{6}(?:\d{4})?|\d(?:\s{1,9})?\d{6})
Options: < none >
Completed iterations: 50 / 50 ( x 1000 )
Matches found per iteration: 6
Elapsed Time: 0.72 s, 715.33 ms, 715325 µs
Matches per sec: 419,389