PHP / MySQL提取字符串中的特定文本

时间:2014-03-04 10:22:06

标签: php mysql preg-match

请问一些有用的人请告诉我如何提取字符串的特定部分?他们通常看起来像这样:

Includes USD39 bundled airtime, 30 SMSs and 50MB data.
Includes USD200 bundled airtime, 110 SMSs and 450MB data.
Includes USD399 bundled airtime, 500 SMSs and 650MB data.

我想要的只是显示

USD39 bundled airtime 
USD200 bundled airtime
USD399 bundled airtime

来自每个字符串。

我知道这对任何人来说都会非常容易,所以道歉:D希望有一天我可以提出更具挑战性的问题..

3 个答案:

答案 0 :(得分:1)

正则表达式摇滚!

$str = 'Includes USD39 bundled airtime, 30 SMSs and 50MB data.';
$matches = array();
preg_match('/ USD\d+ bundled airtime/i', $str, $matches);
echo '<pre>', print_r($matches, 1), '</pre>';

// more complex:
$matches = array();
preg_match('/ (USD\d+ [^,]+),/i', $str, $matches);
echo '<pre>', print_r($matches, 1), '</pre>';

// another way:
$matches = array();
preg_match('/^Includes ([^,]+),/i', $str, $matches);
echo '<pre>', print_r($matches, 1), '</pre>';

答案 1 :(得分:0)

SELECT SUBSTRING(sentence,LOCATE(' ',sentence),LOCATE(' ',sentence,(LOCATE(' ',sentence)+1))-LOCATE(' ',sentence))

FROM(选择'包括USD39捆绑的通话时间,30条短信和50MB数据'AS句子)temp

这应该提取39美元,但不检查。希望这可以为你获得不同的USD值,因为第三和第四个值在每个语句中是相同的。

希望这会有所帮助!!

答案 2 :(得分:-1)

尝试这样做

echo substr("Hello world",1,8);

同样制定你的答案。 (这是一个php函数。希望它有所帮助。)否则正则表达式将成为关键。