这是一个mysql表字段的内容:
Flash LEDs: 0.5W
LED lamps: 5mm
Low Powers: 0.06W, 0.2W
Remarks(1): this is remark1
----------
Accessories: Light Engine
Lifestyle Lights: Ambion, Crane Fun
Office Lights: OL-Deluxe Series
Street Lights: Dolphin
Retrofits: SL-10A, SL-60A
Remarks(2): this is remark2
----------
Infrared Receiver Module: High Data Rate Short Burst
Optical Sensors: Ambient Light Sensor, Proximity Sensor, RGB Color Sensor
Photo Coupler: Transistor
Remarks(3): this is remark3
----------
Display: Dot Matrix
Remarks(4): this is remark4
现在,我想阅读备注并将它们存储在变量中。备注(1),备注(2)等是固定的。 'this is remark1'等来自表单输入字段,因此它们非常灵活。
基本上我需要的是:阅读'备注(1):'和'--------'之间的所有内容并将其保存在变量中。
感谢您的帮助。
答案 0 :(得分:1)
您可以使用正则表达式:
preg_match_all("~Remarks\(([^)]+)\):([^\n]+)~", $str, $m);
见ideone。
正则表达式将X放在匹配组1中,Y放在匹配组2中(备注(X):Y)
答案 1 :(得分:0)
这将是正则表达式的工作,它允许您完全匹配您的要求表达的规则类型。 Here是适合您的教程。
答案 2 :(得分:0)
使用preg
函数或者你可以爆炸和内爆函数来获得正确的结果。不要使用子串,它可能不提供更正。
查询字符串的Implode和Explode函数示例:
$sdr = "Remarks(4): this is remark4";
$sdr1 = explode(":",$sdr);
$frst = $sdr1[0];
$sdr2 = array_shift($sdr1);
$secnd = implode(" ", $sdr1);
echo "First String - ".$frst;
echo "<br>";
echo "Second String - ".$secnd;
echo "<br>";
你的答案:
First String - Remarks(4)
Second String - this is remark4