所以我有这个字符串,它看起来像这样:
<div style="display:none">231</div>.<div style="display:none">13</div>
id想:
<div style="display:none">231</div>#.#<div style="display:none">13</div>
或者像这样:
<div style="display:none">231</div>125<div style="display:none">13</div>
id想要
<div style="display:none">231</div>#125#<div style="display:none">13</div>
id就像一个preg替换,将这些标签放在麻木周围,所以我认为REGEX看起来像这样:
"<\/div>[.]|<\/div>\d{1,3}"
数字(如果是数字,可以是1-3位数字),或者它可以是一个点。
无论如何,我不知道如何更新以取代价值:
"<\/div>[.]|<\/div>\d{1,3}" replace: $0#
在值之后插入。
答案 0 :(得分:0)
告诉我您对assertions
Reqular Expression Syntax
的看法
<?php
header('Content-Type: text/plain');
$lookBehind = '\<div style\=\"display\:none\"\>231\<\/div\>';
$lookAhead = '\<div style\=\"display\:none\"\>13\<\/div\>';
$re = '~(?<='.$lookBehind.')(\.|\d+)(?='.$lookAhead.')~';
$str = '<div style="display:none">231</div>.<div style="display:none">13</div>';
echo preg_replace($re, '#$1#', $str).PHP_EOL;
$str = '<div style="display:none">231</div>125<div style="display:none">13</div>';
echo preg_replace($re, '#$1#', $str).PHP_EOL;
?>
Lookahead
为(?=)
,Lookbehind
为(?<=)
断言中的任何内容都不会成为替换的一部分,如果愿意,可以将其视为 check 。
PS:刚刚测试了它并且它可以工作,但是有人可能想要用更好的性能来填充它。我不是这个主题的大师