我有一个像
这样的字符串Just a text (12%)
现在我想获取百分比值并删除括号。到目前为止,我得到了这个regEx:
$result = array();
$content = preg_replace_callback('~\(([^)]*)\)~', function ($m) use (&$result) {
$percentage = $m[1]/100;
return '';
}, $content);
echo trim($content)."|".$percentage;
这应该给我输出Just a text|0.12
。当前的regEx不会丢弃%-character。
更新
我需要检查百分比值是否是正确的整数 - 有时候有
text (10-15%)
在这种情况下,根本不会发生任何事情。字符串保持原样。
答案 0 :(得分:1)
将 CREATE TABLE #TEST(ID INT,VALUE INT)
INSERT INTO #TEST VALUES
(1,10),(2,20),(3,30),(4,40),(5,50),(6,60),(7,70)
;WITH CTE
as
(
SELECT ID,VALUE,VALUE AS RESULT FROM #TEST WHERE ID=1
UNION ALL
SELECT T.ID,T.VALUE,T.VALUE+C.RESULT
FROM #TEST T INNER JOIN CTE C ON T.ID = C.ID+1
)
SELECT * FROM CTE
放入正则表达式:
%
答案 1 :(得分:0)
您需要将$percentage
var作为对闭包的引用传递给您,以便以后可以使用它。
$content = preg_replace_callback('~\(([^)]*)\)~', function ($m) use (&$result, &$percentage) {
$percentage = $m[1]/100;
return '';
}, $content );