在php中的子字符串之前以数字或书写形式获取数量

时间:2014-02-17 01:43:04

标签: php regex string preg-match substring

我有一个大字符串$string,其中我试图查看某个项目的数量是否为“游戏”。

例如:

$string = "...asdasda fdf **4 games** asdasd sad ...";

OR

$string = "...asdasda fdf **nine games** asdasd sad ..."; 
//maximum is around 15 but till about 10 should be enough for now

OR

$string = "...asdasda fdf asdasd sad **a game** asda ...";

“游戏”可能会在$string中出现多次 如果“游戏”总是出现在它的单数形式(“游戏”而非“游戏”)中,则数量为1.

与任何一个“游戏”事件相关联的数量应该与讨论相同数量的“游戏”相同,即使它可能并不总是提及数量,所以“游戏”之前的任何数量应该给出正确的金额。

我最好如何在php中执行此操作。正如我所理解的那样,任何pregmatch或正则表达都会有所帮助,但对它来说并不是那么好。

我想可能之前接受这个词,然后检查一个数字可能会使用带有子字符串str_pos的正则表达式,后跟一个函数吗?

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式:

\w+(?=\sgames?)

用于捕获以数字或字母形式给出的数量。

如果需要,您可以编写一个函数将字符串数量转换为数字数量。

Working example of the regex on regex101.com