在这种情况下如何获取两个字符之间的字符串?

时间:2014-07-18 02:31:18

标签: php

我想在“是”“是”之间得到字符串

例如。

yes1231yesyes4567yes

输出:

1231,4567

如何在PHP中执行此操作? 可能在yesyes之间有另外1个输出吗?

2 个答案:

答案 0 :(得分:4)

在此特定示例中,您可以使用preg_match_all()和正则表达式来捕获“是”和“是”之间的数字:

preg_match_all("/yes(\d+)yes/", $your_string, $output_array);

print_r($output_array[1]);

// Array
// (
//     [0] => 1231
//     [1] => 4567
// )

并实现您想要的输出:

echo implode(',', $output_array[1]); // 1231,4567

编辑旁边参考,如果您需要更宽松的匹配,只需匹配字符串中的所有数字组,例如在您的评论9yes123yes12中,使用正则表达式:(\d+),它将与912312匹配。

答案 1 :(得分:0)

晚安,

如果您指的是提取数字(如您的示例所示),那么您可以通过参考回答关于此主题的非常相似的问题的克里斯托弗的回答来实现此目的:

PHP code to remove everything but numbers

但是,另一方面,如果您要从字符串中提取单词“yes”的所有实例,我建议使用PHP提供的str_replace方法。

这是一个可以帮助你入门的例子;

str_replace("yes", "", "yes I do like cream on my eggs");

我相信这些信息是有用的。