$newpair = '~I love~~you~ notes';
preg_match_all ('^\~(.*?)\~^' , $newpair, $np);
foreach($np[1] as $key ){
print_r($np[1]);
echo $key .'<br/>';
}
echo $np; //result: I love you
以上 preg_match 回显了里面的字符串~
你能帮助创建一个表达式来呼应外部文本notes
吗?
$newpair = '~I love~~you~ notes';
preg_match_all ('^\~(.*?)\~^' , $newpair, $np);
foreach($np[1] as $key ){
print_r($np[1]);
echo $key .'<br/>';
}
echo $np; //result: I love you
以上 preg_match 回显了里面的字符串~
你能帮助创建一个表达式来呼应外部文本notes
吗?
$outside = preg_replace('#~[^~]*~#', '', $newpair);
这将返回一个字符串,该字符串由配对的 tildas 之外的所有内容组成。
您可以通过积极的后视找到最后~
一个,然后继续捕获所有不是 a 的内容,~
直到您到达字符串的末尾$
:
(?<=~)[^~]+$
像这样使用它:
$newpair = '~I love~~you~ notes';
preg_match_all ('/(?<=~)[^~]+$/' , $newpair, $np);
var_dump( $np[0][0]);
打印:
string(6) " notes"
你可以试试这个:
$subject = '~I love~~you~ notes';
$pattern = '/~\K[^~]++(?=~)/';
preg_match_all ($pattern, $subject, $matches);
print_r($matches);
$result = implode(' ', $matches[0]);
echo $result;
请注意,对于模式,我选择检查~
匹配后是否有前瞻(?=...)
,但如果这不是必要条件,您可以将其删除。
重置模式的\K
开始。