这是一个非常简单的问题,但是我在任何地方都找不到解决方案。
我尝试使用preg_match或preg_match_all从括号内获取字符串,但不带括号。
到目前为止,我的表情看起来像这样:
\([A-Za-z0-9 ]+\)
并返回以下结果:
3(空心高光)928-129(
(空心高亮)(
我想要的是括号内的字符串,但没有括号。它看起来像这样:
空心高亮
之后我可能会用str_replace或其他内容替换括号,但这对我来说似乎不是一个非常优雅的解决方案。
我必须添加什么,因此结果中不包括括号?
感谢您的帮助,你们很棒! :)
除了转义的括号外,您只需添加捕获括号。
<?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]);
?>
此输出:
Array ( [0] => world [1] => is andrew [2] => 845 )
尝试:
preg_match('/\((.*?)\)/', $s, $a);
输出:
Array
(
[0] => (hollow highlight)
[1] => hollow highlight
)
Piotr的答案就足够了,但是我需要使用[]稍有不同,并在之间提取值,因此,如果以后有人需要,请按此处,因为这是我现在需要的。
Priotr解决方案:
preg_match('/\((.*?)\)/', $s, $a);
但是,如果您需要从[]中提取值,例如:
$string = '[11:41-11:45]';
解决方案:
preg_match('/\[(.*?)\]/', $string, $a);
祝你好运。