api*_*s17 3 php string preg-match
我想使用preg_match来查找括号之间的文本,例如: $varx = "(xx)";
最终输出将是 $match = 'xx';
另一个例子 $varx = "bla bla (yy) bla bla";
最终输出将是这样的 $match = 'yy';
换句话说,它剥离了支架.我仍然对正则表达式感到困惑,但发现有时preg match是更简单的解决方案.寻找其他例子但不符合我的需要.
尝试这样的事情:
preg_match('/(?<=\()(.+)(?=\))/is', $subject, $match);
Run Code Online (Sandbox Code Playgroud)
现在它将捕获换行符.
请记住,括号是RegExps中的特殊字符,因此您需要使用反斜杠转义它们 - 您还没有明确说明可能出现的字符范围是什么,( ... )或者是否可能存在多个实例( ... ).
因此,您最好的选择可能是RegExp:/\(([^\)]*)\)/它将匹配括号中( ... )包含任何(或没有)字符的多次出现.
尝试 preg_match('/\(([^\)]*)\)/', $sString, $aMatches)
编辑:(示例)
<?php
$sString = "This (and) that";
preg_match_all('/\(([^\)]*)\)/', $sString, $aMatches);
echo $aMatches[1][0];
echo "\n\n\n";
print_r($aMatches);
?>
Run Code Online (Sandbox Code Playgroud)
结果如下:
and
Array
(
[0] => Array
(
[0] => (and)
)
[1] => Array
(
[0] => and
)
)
Run Code Online (Sandbox Code Playgroud)
所以字符串"和"存储在$ aMatches [1] [0] :)中