Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Separating a few things with preg_split

Tags:

regex

php

For the life of me, I can't figure out how to write the regex to split this.

Lets say we have the sample text:

15HGH(Whatever)ASD

I would like to break it down into the following groups (numbers, letters by themselves, and parenthesis contents)

15
H
G
H
Whatever
A
S
D

It can have any combination of the above such as:

15HGH
12ABCD
ABCD(Whatever)(test)

So far, I have gotten it to break apart either the numbers/letters or just the parenthesis part broken away. For example, in this case:

<?php print_r(preg_split( "/(\(|\))/", "5(Test)(testing)")); ?>

It will give me

Array ( [0] => 5 [1] => Test [2] => testing )

I am not really sure what to put in the regex to match on only numbers and individual characters when combined. Any suggestions?

like image 672
Jeff Geisperger Avatar asked Feb 02 '26 05:02

Jeff Geisperger


1 Answers

I don't know if preg_match_all satisfying you:

$text = '15HGH(Whatever)ASD';
preg_match_all("/([a-z]+)(?=\))|[0-9]+|([a-z])/i", $text, $out);
echo '<pre>';
print_r($out[0]);

Array
(
    [0] => 15
    [1] => H
    [2] => G
    [3] => H
    [4] => Whatever
    [5] => A
    [6] => S
    [7] => D
)

Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!