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);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…