I'm trying to get the string hello world.
This is what I've got so far:
$file = "1232#hello world#";
preg_match("#1232\#(.*)\##", $file, $match)
                It is recommended to use a delimiter other than # since your string contains #, and a non-greedy (.*?) to capture the characters before #. Incidentally, # does not need to be escaped in the expression if it is not also the delimiter.
$file = "1232#hello world#";
preg_match('/1232#(.*?)#/', $file, $match);
var_dump($match);
// Prints:
array(2) {
  [0]=>
  string(17) "1232#hello world#"
  [1]=>
  string(11) "hello world"
}
Even better is to use [^#]+ (or * instead of + if characters may not be present) to match all characters up to the next #.
preg_match('/1232#([^#]+)#/', $file, $match);
                        Use lookarounds:
preg_match("/(?<=#).*?(?=#)/", $file, $match)
preg_match("/(?<=#).*?(?=#)/", "1232#hello world#", $match);
print_r($match)
Array
(
    [0] => hello world
)
Test it here.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With