Mac*_*cks 7 php regex preg-match-all preg-match
这是一个非常简单的问题,但我无法在任何地方找到解决方案.
我尝试使用preg_match或preg_match_all从括号内获取字符串,但没有括号.
到目前为止,我的表达式如下:
\([A-Za-z0-9 ]+\)
Run Code Online (Sandbox Code Playgroud)
并返回以下结果:
3(空心高亮)928-129(< - 原始字符串)
(空心高亮)(< - 结果)
我想要的是括号内的字符串,但没有括号.它看起来像这样:
镂空亮点
我之后可能用str_replace或其他东西替换括号,但这对我来说似乎不是一个非常优雅的解决方案.
我需要添加什么,所以括号不包含在结果中?
谢谢你的帮助,你们真棒!:)
Pio*_*ski 22
尝试:
preg_match('/\((.*?)\)/', $s, $a);
Run Code Online (Sandbox Code Playgroud)
输出:
Array
(
[0] => (hollow highlight)
[1] => hollow highlight
)
Run Code Online (Sandbox Code Playgroud)
And*_*ong 13
除了转义括号之外,您还需要添加捕获括号.
<?php
$in = "hello (world), my name (is andrew) and my number is (845) 235-0184";
preg_match_all('/\(([A-Za-z0-9 ]+?)\)/', $in, $out);
print_r($out[1]);
?>
Run Code Online (Sandbox Code Playgroud)
这输出:
Array ( [0] => world [1] => is andrew [2] => 845 )
Run Code Online (Sandbox Code Playgroud)