Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中,在子字符串之前获取数字或书面形式的数量_Php_Regex_String_Preg Match_Substring - Fatal编程技术网

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

在php中,在子字符串之前获取数字或书面形式的数量,php,regex,string,preg-match,substring,Php,Regex,String,Preg Match,Substring,我有一个很大的字符串,$string,我想看看其中是否提到了某个物品的数量“game” 例如: $string = "...asdasda fdf **4 games** asdasd sad ..."; 或 或 “游戏”可能在$string中出现多次 如果“游戏”总是以单数形式出现(“游戏”而不是“游戏”),那么数量是1 与任何一个“游戏”事件相关的数量应与它将谈论的“游戏”数量相同,即使它可能并不总是提及数量,因此“游戏”之前的任何数量都应给出正确的数量 我最好如何在php中实现这一点。据

我有一个很大的字符串,
$string
,我想看看其中是否提到了某个物品的数量“game”

例如:

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

“游戏”可能在
$string
中出现多次
如果“游戏”总是以单数形式出现(“游戏”而不是“游戏”),那么数量是1

与任何一个“游戏”事件相关的数量应与它将谈论的“游戏”数量相同,即使它可能并不总是提及数量,因此“游戏”之前的任何数量都应给出正确的数量

我最好如何在php中实现这一点。据我所知,任何pregmatch或正则表达式都会有所帮助,但我并不擅长

我想,也许在单词前面加上一个数字,然后用一个带有子字符串的正则表达式,再加上一个函数,就可以了?

你可以使用正则表达式:

\w+(?=\sgames?)
用于捕获以数字或字母表示的数量

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


.

对不起,你能帮我把这个问题细分一下吗。通过查看,它会在单词游戏之前找到单词(在单词游戏之前有一个空格)。就这些吗?它如何处理字符串中出现的文字游戏的数量?然后,我是否必须创建一个函数,该函数单独获取所有实例,然后当它找到与某个数量(不是说“1”或“a”)匹配的值时,获取该数量并中断-否则假设该数量为1?@SortOut是的,它就是这样做的。您可以轻松捕获数字并进行计算,但需要使用函数将单词转换为数字。如果你在谷歌上搜索的话,你可能会在网上找到这样一个功能。谢谢,这很有效。虽然我获取数值的自定义函数有点冗长:P
$string = "...asdasda fdf asdasd sad **a game** asda ...";
\w+(?=\sgames?)