我有textarea,字符串:
__A 59.202x5p.
__B 611.08 500p
__C 991,70p.66.113.552.77.88.10p 199x200p
__C2 33 44x100p 55 161x150p 25 33 85x60p 727 77 373 22x220p
__C3 44 16 59x10p 343 x15p 172 200p
我想要这样的输出:
__A 59.20 02x5p.
__B 61 11.08 500p
__C 99 91,70p.66.11 13.55 52.77.88.10p 19 99x200p
__C2 33 22 44x100p 55 16 61 x150p 25 33 85x60p 72 27 77 37 73 22x220p
__C3 44 16 59x10p 34 43 x15p 17 72 200p
如果数字是数百,而在“x?p”或“?p”之前(?是随机数和不可能),那么它会激发并且线路会像这样:
__A 59.202x5p. >>> __A 59.20 02x5p.
__B 611.08 500p >>> __B 61 11.08 500p
__C 991,70p.66.113.552.77.88.10p 199x200p >>> __C 99 91,70p.66.11 13.55 52.77.88.10p 19 99x200p
...
我使用的是preg_match + preg_replace + substr但是我无法找到“x?p”或“?p”之前的数百位数(?是随机数和不可能)...
我不明白如何激励数字:
__A 59."202"x5p. ( 202 to 20 02 ) >>> __A 59.20 02x5p.
__B 611.08 500p ( 611 to 61 11 ) >>> __B 61 11.08 500p
我的英语不好,希望读我的问题能理解并帮助我解决。
非常感谢。
答案 0 :(得分:0)
检查以下代码..
<?php
echo "<u>CURRENT STRING</u><br/>";
echo $value ="__A 59.202x5p.
__B 611.08 500p
__C 991,70p.66.113.552.77.88.10p 199x200p
__C2 33 44x100p 55 161x150p 25 33 85x60p 727 77 373 22x220p
__C3 44 16 59x10p 343 x15p 172 200p";echo '<br>';
for($i=0;$i<=(strlen($value)-4); $i++ ) {
$myvar = $value[$i].$value[$i+1].$value[$i+2];
if (preg_match("/\d{3}/u", $myvar) > 0 && $myvar>100 && strpos($myvar.$value[$i+3], 'p') == 0)
$value = substr($value,0,$i+2).' '.$value[$i+1].substr($value,$i+2,strlen($value));
}
echo "<u>DESIRED STRING</u><br/>";
echo $value;
?>