PHP preg_match字符串之间
2022-08-30 21:47:42
我正在尝试获取字符串。hello world
这是我到目前为止所得到的:
$file = "1232#hello world#";
preg_match("#1232\#(.*)\##", $file, $match)
我正在尝试获取字符串。hello world
这是我到目前为止所得到的:
$file = "1232#hello world#";
preg_match("#1232\#(.*)\##", $file, $match)
建议使用分隔符,而不是因为字符串包含 ,并且不贪婪地捕获 前面的字符。顺便说一句,如果表达式中不是分隔符,则不需要对其进行转义。#
#
(.*?)
#
#
$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"
}
更好的是使用(或者如果字符可能不存在,则代替)将所有字符匹配到下一个字符。[^#]+
*
+
#
preg_match('/1232#([^#]+)#/', $file, $match);
使用外观:
preg_match("/(?<=#).*?(?=#)/", $file, $match)
preg_match("/(?<=#).*?(?=#)/", "1232#hello world#", $match);
print_r($match)
Array
(
[0] => hello world
)
在这里测试它。