Kev*_*ing 15 php regex preg-match
我正在尝试获取字符串hello world.
这是我到目前为止所得到的:
$file = "1232#hello world#";
preg_match("#1232\#(.*)\##", $file, $match)
Run Code Online (Sandbox Code Playgroud)
Mic*_*ski 21
除了#你的字符串包含之外#,建议使用分隔符,并且之前使用非贪婪(.*?)来捕获字符#.顺便说一句,#如果它不是分隔符,则不需要在表达式中进行转义.
$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"
}
Run Code Online (Sandbox Code Playgroud)
更好的是使用[^#]+(或*代替+字符可能不存在)来匹配所有字符直到下一个#.
preg_match('/1232#([^#]+)#/', $file, $match);
Run Code Online (Sandbox Code Playgroud)
Ωme*_*ega 11
使用外观:
preg_match("/(?<=#).*?(?=#)/", $file, $match)
Run Code Online (Sandbox Code Playgroud)
preg_match("/(?<=#).*?(?=#)/", "1232#hello world#", $match);
print_r($match)
Run Code Online (Sandbox Code Playgroud)
Array
(
[0] => hello world
)
Run Code Online (Sandbox Code Playgroud)