2015-02-06 99 views
0

之间的字符串我有这个total USD100.75 from string.I我得到的下一个单词这样获取其他两个字符串

$s = 'total USD100.75 from'; 
$r = preg_match_all('/(?<=(total))(\s\w*)/',$s,$matches); 
print_r($matches[0]); 

但是我想获得两个特定的字符串之间的字符串即totalfrom。我怎样才能得到中间的字符串?

+0

请检查我的答案,它会解决您的问题。让我知道你仍然面临任何问题。 – 2015-02-06 13:15:27

+0

谢谢你的回答.Elon的回答更适合我的情况,而不是你的回答不好。干杯。 – user3272483 2015-02-06 13:23:51

回答

1

你也可以使用正则表达式,例如。

'/total (.*?) from/' 
0

你可以通过空间分解你的字符串。

$s = 'total USD100.75 from';  
$s1 = explode(" ", $s); 
echo $s1[1]; 

输出

USD100.75 

Demo

1

使用substrstrlen

echo substr($string, strlen("total "), -strlen(" from")); 
0

常规expressi ons很容易做到这一点。你只需要了解基础知识。 你会实现你想要与下面的模式是什么:

total\s(.*)\sfrom 
0

@ user3272483,请检查下面的回答您的解决方案。

$matches = array(); 
preg_match("/total (.*?) from/", 'total USD100.75 from', $matches); 
print_r($matches); 
1

我不知道你的语言的具体情况,但在Java:

(?USD[0-9]+\.[0-9]{2}) 

会工作。

  1. “USD”,接着
  2. 的一个或多个标记,随后
  3. 文字 “”,
  4. 后跟两个数字。

如果你有逗号,你可以尝试:

(?USD[0-9]{1,3}(,?[0-9]{3})*\.[0-9]{2}) 
  1. “USD”,其次是1-3的数字,紧接着,
  2. 任意数量的群体:一个可选的逗号后面由3个标记,随后
  3. 小数,然后
  4. 两个数字
+0

伟大的答案Nields.I将使用您的答案,当我在几个月内将我的应用程序移植到Java。 – user3272483 2015-02-06 13:28:35