在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?)