2015-04-23 30 views
1

$text = 'sample sample sample #mark#24sdf-/u2<br>sample sample';PHP的正则表达式的preg_replace白名单

preg_replace('/#mark#(\S+)/', 'marks : ($1)', ''); 

我用这个表达式采取某些部分的文字。

我想这一点 - >#mark#24sdf-/u2 但正则表达式了这一点 - >#mark#24sdf_/*u2sample

+0

什么定义字符串的结束?少于总是?第一次出现非alpha /数字字符?您目前正在寻找#mark#后的所有非空白字符。 – chris85

+1

请显示您想要的输出样本。 –

+0

我想在'
'之前结束正则表达式输出' – manna

回答

2
<?php 
$text = 'sample sample sample #mark#24sdf-/u2<br>sample sample'; 
preg_match('/#mark#([^<]+)/', $text, $findings); 
echo 'marks : (' . $findings[1] . ')'; 

这是说找到一切,这不是比符号少。

输出:

marks : (24sdf-/u2) 
+0

谢谢!快速问题解决者 – manna

2

不知道,如果是这样,你想要的,但我猜是这样,

$text = 'sample sample sample #mark#24sdf-/u2<br>sample sample'; 
    $text = preg_replace('/.*?#mark#(.*?)<.*?$/sim', 'marks : ($1)', $text); 
    echo $text; 
    //marks : (24sdf-/u) 
+0

谢谢,这也正确 – manna